printf("\n");这条语句和for(j=0;j<8;j++)语句是同一个级别的,程序上写的也很清楚,它们缩进的距离相等,又同在for(i=0;i<8;i++)的执行语句里面(因为在它的{}里面),当for(j=0;j<8;j++)执行完后,就执行printf("\n");不实际运行程序,你也可以模拟程序的运行,也就是模拟程序运行的流程,逐条逐句往下分析,这样可以理顺整个程序的运行思路,方便对程序进行调试修改。读懂可以说是程序员的基本功,希望你能加强训练。
一般不说“属于第二个for的八个字节”,我也没听过这种说法,我们一般都是说:当j累加到八时,输出'\n'换行,这中说法包含着程序运行的流程。至于字节不字节的不重要,只是一种说法而已。
建议你使用编译器的断点功能,这样可以很清楚的观摩程序的运行与数据的变化
这个在实际的项目开发中,不一定好判断。因为实现不同的功能,可能放在里面,也可能放在外面。标准的做法是加上花括号,这也是C语言开发的标准风格。拿你的代码来说,完全可以这样写:
#include "stdio.h"
#include "conio.h"
main(){
int i,j;
for(i=0;i<8;i++){
for(j=0;j<8;j++){
if((i+j)%2==0){
printf("%d",0);
}else{
printf(" ");
}
}
printf("\n");
}
}
这涉及到语句的作用域,就是一条语句的作用范围。外层是一个for循环,用{}括起来的部分成为中国循环的循环体。里面的是一个for循环,他的循环体实际上只有一条语句,就是if else语句。最后的printf语句和这个for语句共同构成外层for的循环体。只要你把语法弄清楚了,判断一条语句属于哪个for是很容易的。
一般是离他最近的那个,因为第二个FOR 后面没加大括号,所以for与第二个最近,则是第二个。如果此时第二个for在后面打了括号,而for不在括号里面,则是第一个
属于第一个for 不加{}for就是到下面的第一句结束 加{} 就是到执行{}里面的
等一下捷达哈。我先整理东西,待会给你解答