黑马程序员技术交流社区
标题:
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