标题:这两个题目烦啊!
只看楼主
tcboy20
Rank: 1
等 级:新手上路
帖 子:72
专家分:0
注 册:2006-3-9
 问题点数:0 回复次数:4 
这两个题目烦啊!
(—)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 
2006-03-23 14:52
bluesky1
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2006-3-19
得分:0 
<一>
当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
你应该是错误的理解了该程序的含义,并非你所说哦!

2006-03-23 15:30
千里冰封
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:灌水之王
等 级:版主
威 望:155
帖 子:28477
专家分:59
注 册:2006-2-26
得分:0 

楼上的解释得挺好


可惜不是你,陪我到最后
2006-03-23 15:48
mojian0820
Rank: 1
等 级:新手上路
帖 子:34
专家分:0
注 册:2005-11-28
得分:0 

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


2006-03-23 15:57
tcboy20
Rank: 1
等 级:新手上路
帖 子:72
专家分:0
注 册:2006-3-9
得分:0 
2006-03-23 17:39



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-52272-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.797629 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved