我使用了一个嵌套的while循环,但遇到了一个问题,因为内部循环只运行一次。为了演示我已经做了一些测试代码。
#include <stdio.h>
int main(){
int i = 0;
int j = 0;
while(i < 10){
printf("i:%d\n", i);
while(j < 10){
printf("j:%d\n", j);
j++;
}
i++;
}
}这将返回:
i:0
j:0
j:1
j:2
j:3
j:4
j:5
j:6
j:7
j:8
j:9
i:1
i:2
i:3
i:4
i:5
i:6
i:7
i:8
i:9有人能解释一下为什么嵌套循环不执行10次吗?我能做些什么来修复它呢?
发布于 2013-05-17 01:51:05
您永远不会将j的值重置为0,因此,在第一次运行后,您的内部循环条件永远不会为真。之后在外部循环中分配j = 0;应该可以解决这个问题。
发布于 2013-05-17 01:51:39
因为您不会在外部循环的每次迭代中重置它。如果您希望内部循环也运行十次,请将j变量的初始化放在外部循环中,如下所示:
int i = 0;
while (i < 10) {
printf("i:%d\n", i);
int j = 0;
while (j < 10) {
printf("j:%d\n", j);
j++;
}
i++;
}发布于 2013-05-17 01:51:28
在内部循环完成后,您需要将值j重新设置为0。
https://stackoverflow.com/questions/16594148
复制相似问题