请问一下switch

steveniboa 2010-03-05 04:10:09
package net.yeah.practice;

public class Max3abcSwitch {

public static void main(String[] args) {
int a=1, b=5, c=2, max;
max=c;
if(max<a)
max=a;
if(max<b)
max=b;
switch(max){
case 1:{if(c>b)
System.out.println(max+""+c+""+b);
else
System.out.println(max+""+b+""+c);
}break;
case 5:{if(c>a)
System.out.println(max+""+c+""+a);
else
System.out.println(max+""+a+""+c);
}break;
case 2:{if(a>b)
System.out.println(max+""+a+""+b);
else
System.out.println(max+""+b+""+a);
}break;
}
}

}

额才开始学JAVA,遇到问题,请大侠们帮我解答下。。谢谢
额想将这三个数从大到小排列,但是把红色那个break去掉之后,发现编译出来的结果是:
5 2 1
5 5 1
这是为什么了?
...全文
96 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
steveniboa 2010-03-05
  • 打赏
  • 举报
回复
哦。。。刚刚再试了一下。原来是这样!谢谢!
xtsqianli 2010-03-05
  • 打赏
  • 举报
回复
case本来就得对应break 不跳出的话 会全部都执行
孤独剑客 2010-03-05
  • 打赏
  • 举报
回复
break去掉之后, 不论条件是否满足会继续执行下一个case里面的代码
所以.....
建议: 一个case 对应一个break; 除非代码算法要求.

62,621

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧