c ++中for循环中的比较运算符

时间:2017-01-27 06:39:33

标签: c++

下面的代码是不是应该使用for循环将所有数组元素初始化为0?

#include<iostream>
using namespace std;

int main()
{
    int a[10];
    for(int i=0; i==9; i++){
        a[i] = 0;
    }

    for(int i=0;i<10;i++){
        cout << a[i] << endl;
    }
}

输出: -

164752
6
0
0
-13120
0
-13211
0
0
0

4 个答案:

答案 0 :(得分:3)

点击此处corrected-code

#include<iostream>
using namespace std;

int main()
{

int a[10];
for(int i=0; i<10; i++){ // <= i < 10 instead of i == 9
a[i] = 0;
}

for(int i=0;i<10;i++){
cout << a[i] << endl;
}

}

答案 1 :(得分:1)

不,因为for循环中的比较不正确。它只是检查i在开头是否为9,结果是假,因此,第一个for循环根本不执行。 正确的条件应该是i <= 9(或i <10)而不是i == 9,这是你在第二循环中写的。

答案 2 :(得分:0)

更正后的代码:

#include <iostream>

int main()
{
    int a[10];

    for (int i = 0; i != 10; i++)
        a[i] = 0;

    for (int i = 0; i != 10; i++)
        std::cout << a[i] << '\n';
}

答案 3 :(得分:0)

在像for (int i = 0; i == 9; i++)这样的for循环中,第二个表达式(i == 9继续运行循环的条件。由于i是第一次为0通过循环,i == 9为false,循环立即结束;继续执行下一个语句。将其更改为i < 10;这样,在第一次循环时,{{1} }为0,条件为真,并且继续执行。实际上,它会持续到i变为false,这在循环体的第十次执行之后发生。