C++ 代码没有做我想做的事

C++ code not doing what I want

当我调用这个函数时它没有显示任何*。但是当我将 == 更改为 < 时它起作用了。为什么?

void starBox(int size){
    for(int i = 0; i == size; i++){
        for(int j = 0; j == size; j++){
            cout << '*';
        }
        cout << endl;
    }
}

我认为您的问题是由于误解了 for 循环中间条件的含义。这是一个循环 continuation 条件,意味着循环需要 true 才能继续。循环的 post-条件与其延续条件相反。

When I call this function it doesn't display any *.

这是因为循环继续条件是false除非size为零,所以循环体被跳过。

But when I change == to < it works. Why?

因为循环继续条件变为true,并保持true直到循环结束。这就是 < 起作用的原因; != 也可以。