添加while循环时C ++出现问题

时间:2013-06-19 15:08:19

标签: c++

#include <iostream>
#include <string>

using namespace std;

int main()
{
    int i = 0;
    while ( i < 11)
        cout << i << '\n';
        i++;
}

为什么这段代码重复输出0而不是每次都加1?

7 个答案:

答案 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++;
    }