为什么第一个每次循环都打印换行,而第二个在一个循环结束后才打印一次换行,它们都是被大括号括起来的呀
(1) for(i=1;i<=2;i++)
for(j=0;j<4;j++)
{printf("%d",j+i);
printf("\n");
}
(2) for(i=1;i<=2;i++)
{for(j=0;j<4;j++)
printf("%d",j+i);
printf("\n");
}
大括号的作用就是把括起来的语句看成是一个整体,你可以把它当成一条语句。
如果if else while for这些判断或循环语句后面的执行语句只有一条,就可以省略大括号,因此这两段代码等价于:
(1) for(i=1;i<=2;i++){
for(j=0;j<4;j++)
{printf("%d",j+i);
printf("\n");
}
}
(2) for(i=1;i<=2;i++)
{for(j=0;j<4;j++){
printf("%d",j+i);
}
printf("\n");
}
这就设计到一个循环嵌套的问题:
第一个它括的是内部的循环,所以它的内部循环循环一次就换行一次;
而第二个括的是整个大循环,所以它的循环执行完了才会换行!
谢谢大家!