有点小问题不是很理解
for(i=9; i>=1; i++)
for(j=1; j<=1; j--)
这两个for语句分别是怎么运行的? 可以解释一下吗 i和j分别代表什么呢
for(i=9; i>=1; i++)
for(j=1; j<=1; j--)
这两个for语句分别是怎么运行的? 可以解释一下吗 i和j分别代表什么呢
2015-11-14
for(i=9;i>=1;i--) //i的初值为9,判断是否满足i>=1,满足即运行内部的程序,i++是内部程序执行完后做的 { for(j=1;j<=i;j++) /*可以先看成第一个for的内部程序,然后再把它当做一个for循环,单个的for循环你会吧*/ { result=i*j; //i=9,j=1,得出相应的result printf("%d*%d=%d\t",i ,j,result); //输出9*1=9,j++,j=2,j<=i,条件满足,继续执行第二个for } printf("\n"); //第二个for的循环条件不满足即j>i时,循环结束,执行第一个for循环的换行命令 }
第二个for循环嵌在第一个for循环里面,要第二个for循环执行好了,才能够i--,然后继续执行,这个时候i=8,for循环条件通过,执行第二个for循环,第二个for循环执行跳出以后,再执行i--,这样循环往复的执行。
第一次i=9
j=1时输出 9*1=9
j=2时输出 9*2=18
j=3时输出 9*3=27
j=4时输出 9*4=36
j=5时输出 9*5=45
j=6时输出 9*6=54
j=7时输出 9*7=63
j=8时输出 9*8=72
j=9时输出 9*9=81
当j=10时循环条件不满足,第二for循环结束,执行回车换行,i--
第二次 i=8
和上面的类似不过当j=9时循环条件j<=i不满足,循环结束,回车换行,i--
下面就是一样的道理,知道i=0不满足i>=1的循环条件,循环结束。
好啦,差不多就这样,希望没有把你绕糊涂
举报