当前位置: 代码迷 >> Java相关 >> 这两个题目烦啊!
  详细解决方案

这两个题目烦啊!

热度:145   发布时间:2006-03-23 14:52:00.0
这两个题目烦啊!
(―)public class TestBreak{
public static void main(String args[]){
for(int i=0;i<3;i++)
{
if(i>1)
break;
System.out.println(i);
}
}
}
输出的值是0 1
帮我解释下这个在执行循环的时候,break语句使程序立刻跳出包含它的最内层循环,
当i为0 1时 i>1不成立 ,打印出i
当i为2时 i>1 成立,条件满足,执行break语句,跳出循环,结束程序执行
为什么是不成立的值输出去,



(二)


public class TestBreak{
public static void main(String args[]){
for(int i=0;i<3;i++)
{
if(i%2==1)
break;
System.out.println(i);
}
}
}

输出为0 2
在这段代码中,根据条件,得出0 1 2 值
i值%2取值余1的数是0 2 吗

不知道怎么理解啊
搜索更多相关的解决方案: break  public  语句  args  

----------------解决方案--------------------------------------------------------
<一>
当i=0,1是,由于i不满足if()的条件,所以if中的语句不会执行,但是System.out.println(i)不属于if的内嵌语句,所以执行了啊;当i>1时,执行了break语句,跳出了for循环,输出语句在for循环中,所以不执行,
最后输出的0,1
<二>
输出为0,而不是0,2哦
当i=0是,if()条件不满足,执行了Systen.out.println(i);输出为0.
当i=1时,满足了if()的条件,所以跳出了for循环,执行结束。所以不会输出2。
要想输出0,2把break改为continue
你应该是错误的理解了该程序的含义,并非你所说哦!

----------------解决方案--------------------------------------------------------

楼上的解释得挺好


----------------解决方案--------------------------------------------------------

解释的非常好,让我收获很多


----------------解决方案--------------------------------------------------------

----------------解决方案--------------------------------------------------------
  相关解决方案