我不知道以前是否曾经问过,但我还是找不到答案.我的问题是这个; 在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循环执行多次,你需要为迭代器变量提供一个条件,<或者>这个迭代器变量递增/递减时可以多次满足.
小智 7
for循环工作直到条件为真,这样你就可以写了
for (int i = 0; i <= 10; i++)
k++;
Run Code Online (Sandbox Code Playgroud)
当你把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)