如果我在if循环中注释i++
,则while循环将运行并至少打印0,1,2,3
。但是,相反,它输出C ++ Shell中超出的运行时。我不明白为什么?
#include <iostream>
using namespace std;
int main() {
int i = 0;
while (i < 10) {
if (i == 4) {
// i++;
continue;
}
cout << i << "\n";
i++;
}
return 0;
}
答案 0 :(得分:1)
continue语句会导致跳转,就像跳转到循环主体的末尾一样,跳过i++
会导致无限循环,因为我停留在4岁。
答案 1 :(得分:0)
使用break
而不是continue
,则机器将了解需要在i == 4
处退出循环。
执行以下操作:
#include <iostream>
int main(void) {
int i = 0;
while (i < 10) {
if (i == 4) break;
std::cout << i << std::endl;
i++;
}
return 0;
}
另外,请注意,由于我们在遇到i == 4
时设置了break语句,因此While循环直到10才会迭代。