为什么我不能在For循环中使用==?

Dim*_*dis 4 c# for-loop

我不知道以前是否曾经问过,但我还是找不到答案.我的问题是这个; 在For循环中,这是可以接受的.

int k = 0;

for (int i = 0; i <= 10; i++)
    k++;
Run Code Online (Sandbox Code Playgroud)

但这不是:

int k = 0;

for (int i = 0; i == 10; i++)
    k++;
Run Code Online (Sandbox Code Playgroud)

为什么我不能用'=='来确定条件是否已经满足?我的意思是,两个表达式根据情况返回true或false,后者适用于If循环.

int k = 10;

if (k == 10)
{
    // Do stuff.
}
Run Code Online (Sandbox Code Playgroud)

这个问题的答案在我作为业余爱好者的程序员期间一直困扰着我,但直到现在我还没有找到它.

Dar*_*rov 15

一个for同时满足条件时循环运行.一开始i = 0,所以你的测试i == 10永远不会满足,因此循环体永远不会被执行.

另一方面,你可以使用i == 0条件,循环只执行一次:

for (int i = 0; i == 0; i++)
    k++;
Run Code Online (Sandbox Code Playgroud)

这就是为什么如果你想要一个for循环执行多次,你需要为迭代器变量提供一个条件,<或者>这个迭代器变量递增/递减时可以多次满足.

  • 也许提及“for (int i = 0; i != 10; i++)”也会有帮助? (2认同)

小智 7

for循环工作直到条件为真,这样你就可以写了

for (int i = 0; i <= 10; i++)
k++;
Run Code Online (Sandbox Code Playgroud)


Sha*_*dow 5

当你把i == 10然后它检查i的条件是否等于10.并且显然在初始阶段i = 0,因此循环爆发

所以如果你想在某些条件下打破循环,那么最好你应该使用

for (int i = 0; i <= 10; i++)
{
    if(i==5) // test with your condition
    break;
    k++;

}
Run Code Online (Sandbox Code Playgroud)