只是一个初学者问题。我试图找到答案,但我不能。
为什么
for (int i = 0;i==10;++i) {
/* body of the for loop */
}
永远不要执行for循环的主体?但是这个有效吗?
for (int i = 0;i<=10;++i) {
/* body of the for loop */
}
如果i == 0,(i == 0)应该是一个布尔表达式,评估为false,对吧? 如果我将该表达式放在像
这样的if语句中,这完全有效for(int i=10;;++i) {
if (i==10) break;
}
谢谢!
答案 0 :(得分:3)
C ++ 101:中间条件必须为true才能继续循环。
答案 1 :(得分:2)
for循环基本上意味着只要中间条件为真就继续。
所以循环,在这种情况下只会在i == 10时继续。因此它不会停止。
答案 2 :(得分:1)
因为第一个循环中的条件仅表示在i
等于10时递增。您将i
设置为0,因此它永远不会递增,因为它无法到达那里。
第二个是有效的,因为你说i
等于0,而i
小于或等于10,它增加1. 0小于10,但不相等它。
答案 3 :(得分:0)
for (int i = 0; <condition>;++i) {
/* body of the for loop */
}
理解这一点的关键是每次条件评估为TRUE时身体都会执行。在您的示例中,它首次计算为FALSE,因此不执行任何操作。
在第二个示例中,省略了 condition 。这意味着身体永远执行,直到你突破它。当你= = 10时你会这样做。因此身体会执行10次。
答案 4 :(得分:0)
for(;true;)
{
//this is infinite loop
}
条件应为true才能进入循环, 在你的情况下,i == 10返回false,因此它不会进入循环。
答案 5 :(得分:0)
for (int i = 0;i==10;++i) {
/* body of the for loop */
}
对于此代码i = 0最初,当检查条件(i == 10)时,它会导致错误,因此循环不会迭代。
仔细检查您想要运行循环的i值。
例如你的循环可能是
for (int i = 0;i<=10;++i) {
/* body of the for loop */
}
循环体将从0迭代到10,包括两者。