用while循环替换for循环时我做错了什么?

时间:2016-02-01 23:13:49

标签: c++ for-loop while-loop

以下是使用for循环的代码:

for (int i = 0; i < 3; i += 1) {
    for (int j = 0; j < 3; j += 1) {
        cout << "HI" << endl;
    } 
}

这是我尝试用whiles替换它:

int i=0,j=0;
while(i < 3) {
    while(j < 3) {
        cout << "HI" << endl;
        j++;
    }
    i++;
}

for循环打印出来&#34; HI&#34; 9次,就像我想要他们一样。我不明白为什么while循环只评估一次内部表达式,打印&#34; HI&#34;出3次。

1 个答案:

答案 0 :(得分:3)

&#34; OMG我想我明白了。我需要在每个外部while循环中重置j。 &#34;

是的,你是对的。内循环:

 for (int j = 0; j < 3; j += 1) {
        cout << "HI" << endl;
    } 

在外循环的每次迭代中将j重置为零。

int i=0;
while(i < 3) {
    int j= 0;
    while(j < 3) {
        cout << "HI" << endl;
        j++;
    }
    i++;
}

应该做的伎俩。