#include <iostream>
#include <string>
using namespace std;
int main()
{
int i = 0;
while ( i < 11)
cout << i << '\n';
i++;
}
为什么这段代码重复输出 0 而不是每次都给 i 加 1?
#include <iostream>
#include <string>
using namespace std;
int main()
{
int i = 0;
while ( i < 11)
cout << i << '\n';
i++;
}
为什么这段代码重复输出 0 而不是每次都给 i 加 1?
把你的陈述放在花括号里{
。否则,您只在循环中执行输出语句,并且增量i
将发生在循环之外。
您的 while 循环没有大括号。
它将您的代码视为:
while ( i < 11)
cout << i << '\n';
i++;
你真的想要:
while ( i < 11)
{
cout << i << '\n';
i++;
}
你需要写:
#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
进入循环范围的,因此无法在循环之外访问它;帮助程序稳定。对 i的所有东西happen
(声明、定义、终止条件和增量)也都在同一行;帮助可读性。
循环体可以是单个语句:
while ( i < 11)
cout << i << '\n';
或复合语句;也就是用大括号括起来的一组语句:
while ( i < 11) {
cout << i << '\n';
i++;
}
当您需要第二个表格时,您已经编写了第一个表格。与其他一些语言不同,缩进在 C++ 中没有任何意义,只有用 . 包围的语句才会被分组到块中{}
。
在 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++;
}
while ( i < 11)
{
cout << i << '\n';
i++;
}
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++;
}
}