(1):
for(i=0i<ni++)
____for(j=0j<nj++)
________if(A)
____________B
C
因为C不在if以及for的作用域内,不论if和for怎样,C都要执行。
(2):
for(i=0i<ni++)
____for(j=0j<nj++)
________if(A)
____________D
________else
____________B
C
(3):
for(i=0i<ni++)
____for(j=0j<nj++)
________if(A)
____________D
if(B)
____E
C
(4):
for(i=0i<ni++)
____for(j=0j<nj++)
____{
________if(A)
____________D
________if(B)
____________E
____}
C
其实和(1)一样,所有的C语句都在所有的for语句的作用域外,你可以看到,C与最外层的for循环都是并列的,而if语句都是在一个for循环里面,所以C根本不受if语句的控制。
至于A为假的时候,(1):不执行B语句;(2):执行D语句。(3):不执行D语句。(4):不执行D语句。至于if之后的其他语句执行情况,那就不属于你这个问题范围内了。就不一一列举了。
另外,因为你的语句中都没有break或者continue语句,所以循环肯定是执行完毕的,那么所有的i++和j++都会执行,至于什么时候执行,你看看相关for循环的教程就知道了。
区别在于执行次数的差异
for嵌套if,for循环要循环多少次,就要执行多少次if判断。
if嵌套for的话,则是如果满足if判断才会执行,for循环的内容。如果不满足if判断,则不会执行for判断。
for循环:编程中用于循环处理的语句。Java的for语句形式有两种:一种是和C语言中的for语句形式一样,另一种形式用于在集合和数组之中进行迭代。有时候把这种形式称为增强的for(enhanced for)语句,它可以使循环更加紧凑和容易阅读。它的一般形式为: for() 语句; 初始化总是一个赋值语句,它用来给循环控制变量赋初值;条件表达式是一个关系表达式,它决定什么时候退出循环;增量定义循环控制变量每循环一次后按什么方式变化。这三个部分之间用""分开。
main(){inti,j,kprintf("ijk\n")for(i=0ifor(j=0jfor(k=0kprintf("%d%d%d\n",i,j,k)}for循环的嵌套:就上面的代码而言,通俗的讲,我们可以说套,套但是实际上这句只是for循环的头部,其主体是这三句所组成的另一个for循环。打个比方来讲,地球从外到内不是分好几层的?for循环就跟地球一样,这里的就相当于地表,是地幔,以此类推。从执行顺序来讲,我们先不讲三层的,讲个两层的好了。比如上面的三句:for(j=0jfor(k=0kprintf("%d%d%d\n",i,j,k)第句:对于从0到2的每一个j(也就是0和1了),都要执行一次构成的for循环。而呢?是对于从0到2的每一个k(同样也是0和1),都要执行一次这个句子。总的来讲,这个句子在这里一共执行了2*2=4次,第一次执行的时候j=0,k=0,第二次的时候j=0,k=1,第三次的时候j=1,k=0,第四次的时候j=1,k=1。另外,也有人问过关于嵌套for循环的问题,请参看这里的解答:欢迎分享,转载请注明来源:内存溢出
评论列表(0条)