c循环问题 for(x=0;x<5;x++) for(y=0;y<5;y++)和 for(x=0;x<5;x++) for(y=0;y<5;y++)

2025-06-25 04:01:16
推荐回答(5个)
回答1:

区别是后面的写了{} 容易看

VC6 运行结果

#include

int main(){
int x, y;
for(x=0;x<5;x++)
for(y=0;y<5;y++)
printf("%d-%d, ", x, y);

printf("\n");

for(x=0;x<5;x++){
for(y=0;y<5;y++)
printf("%d-%d, ", x, y);
}
printf("\n");

return 0;
}

ForLoopTest.c
0-0, 0-1, 0-2, 0-3, 0-4, 1-0, 1-1, 1-2, 1-3, 1-4, 2-0, 2-1, 2-2, 2-3, 2-4, 3-0, 3-1, 3-2, 3-3, 3-4, 4-0, 4-1, 4-2, 4-3, 4-4,
0-0, 0-1, 0-2, 0-3, 0-4, 1-0, 1-1, 1-2, 1-3, 1-4, 2-0, 2-1, 2-2, 2-3, 2-4, 3-0, 3-1, 3-2, 3-3, 3-4, 4-0, 4-1, 4-2, 4-3, 4-4,
<<< Process finished.

回答2:

区别就是,前者两个for是独立的,x和y分别循环5次;后者是关联的,x循环一次,y就要循环5次(因为y在x循环体内),于是,y循环25次。

回答3:

第一个循环是2个独立的for循环
如果打出来的话是 0,1 2 3 4 0 1 2 3 4

第二个循环 是 把带Y 的循环 嵌套在带X的循环里面了
如果直接打出来 的话 就是 0 1 2 3 4 这一行数字要打印5次

回答4:

花括号的为复合语句,
for(x=0;x<5;x++)
for(y=0;y<5;y++)

的执行过程为判断x=0<5为真,执行
for(y=0;y<5;y++) 之後再执行x++,
for(x=0;x<5;x++)
{
for(y=0;y<5;y++)
}

的执行过程为判断x=0<5为真,执行花括号裏面的内容之後再y++。具体的做个实验吧。

回答5:

运行起来的结果都一样的,但是相对来说后者更谨慎,更好一些
你这个例子没有什么作用,内循环没有写循环体