黑马程序员技术交流社区

标题: if语句的执行问题 [打印本页]

作者: 游兴钟    时间: 2012-4-12 14:40
标题: if语句的执行问题
public class Demo
{
        public static void main(String []args)
        {
                int i = 0, j = 5;
                tp: for (;;)
                {
                        i++;
                        for(;;)
                        {
                                if(i > j--)//这里的条件判断完为FALSE,怎么还会执行下面的break?
                                        break tp;
                        }
                }
                System.out.println("i = " + i + ", j = "+ j);
        }
}        
作者: 欧阳才志    时间: 2012-4-12 15:47
不是执行了下边的 break tp;
而是条件判断为false后,自动跳出循环。
作者: 郑苑东    时间: 2012-4-12 15:56
。里层循环一直执行。j一直自减。。直到等于0时符合条件,退出整个循环。。。这时候,i=1......j=0.....
作者: 未长法    时间: 2012-4-12 16:12
public class Demo
{
        public static void main(String []args)
         {
                int i = 0, j = 5;
                tp: for (;;)
                 {
                        i++;                                              //执行第一次后i变成1
                        for(;;)                                           //然后到for() 循环里面去执行
                         {
                                 if(i > j--)//这里的条件判断完为FALSE,怎么还会执行下面的break?       判断条件i 这时是1,这时j是5,不符合条件,没有break,但是还在循环体里面继续执行for()循环,判断i是否大于J,这时是4,在循环。知道i>j 时 break,这时j=0,但是j 还得执行J--,所以最后输出结果是i = 1, j = -1
                                         break tp;
                        }
                 }
                System.out.println("i = " + i + ", j = "+ j);
         }
}        
注意--i 是先执行i=i-1,然后在进行操作,i-- 是先进行操作然后在执行i=i-1;
作者: 邓斌    时间: 2012-4-12 17:31
嵌套循环。
两个无限死循环
外循环开始执行- i++  等于1
内循环开始执行 1>5--  为false 继续执行内循环。 1>4--也是false 在继续执行。执行到1>0--时。为ture .循环跳出
输出结果最后j=0-- =-1

作者: 游兴钟    时间: 2012-4-13 13:55
嗯  懂了 解说的很详细 谢谢




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2