#include <iostream>
#include <string>
using namespace std;
int main()
{
int i = 0;
while ( i < 11)
cout << i << '\n';
i++;
}
为什么这段代码重复输出0而不是每次都加1?
答案 0 :(得分:6)
将您的语句放在花括号{
中。否则,您只在循环中执行输出语句,i
的增量将在循环之外发生。
答案 1 :(得分:4)
你的while循环没有大括号。
它将您的代码视为:
while ( i < 11)
cout << i << '\n';
i++;
你真的想要:
while ( i < 11)
{
cout << i << '\n';
i++;
}
答案 2 :(得分:4)
你需要写:
#include <iostream>
#include <string>
using namespace std;
int main()
{
int i = 0;
while ( i < 11){
cout << i << '\n';
i++;
}
}
请注意( i < 11)
出于兴趣,在风格上首选使用for
循环:
int main()
{
for (int i = 0; i < 11; ++i){
cout << i << '\n';
}
}
注意我是如何将i
带入循环范围的,因此无法在循环外访问它;帮助计划稳定。 happen
到i(声明,定义,终止条件和增量)的所有内容都在同一行;帮助提高可读性。
答案 3 :(得分:1)
在C ++中,您可以选择是否将一个语句放入大括号中。
但是,如果循环体中有多个语句,则必须使用大括号:
while ( i < 11) {
cout << i << '\n';
i++;
}
C ++对空间不敏感,例如python,所以以下也可以工作:
while ( i < 11) {cout << i << '\n';i++;}
while ( i < 11)
{
cout << i << '\n';
i++;
}
while ( i < 11)
{
cout << i << '\n';
i++;
}
答案 4 :(得分:1)
循环体可以是单个语句:
while ( i < 11)
cout << i << '\n';
或复合陈述;也就是说,一组用大括号括起来的语句:
while ( i < 11) {
cout << i << '\n';
i++;
}
当你想要第二张时,你已经写了第一张表格。与其他一些语言不同,缩进在C ++中没有意义,语句只有在用{}
包围时才会被分组为块。
答案 5 :(得分:0)
C ++中的循环仅循环紧跟在后的语句,除非它们已被放入代码块中。也就是说,您的代码等同于:
int main()
{
int i = 0;
while ( i < 11)
{
cout << i << '\n';
}
i++;
}
这相反:
int main()
{
int i = 0;
while ( i < 11)
{
cout << i << '\n';
i++;
}
}
答案 6 :(得分:0)
while ( i < 11)
{
cout << i << '\n';
i++;
}