java, 为何运行之后,b=1,a=2,求答疑?谢谢!

捉虫师傅 2015-06-08 10:44:10
package testD;

public class exam {

public static void main(String[] args) {
int x=1,a=0,b=0;
switch(x){
case 0:b++;
case 1:a++;
case 2:a++;
b++;
}
System.out.println("a="+a+",b="+b);
}
}
...全文
186 6 打赏 收藏 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
alexzt 2015-06-09
  • 打赏
  • 举报
回复
case之后要加break
「已注销」 2015-06-09
  • 打赏
  • 举报
回复
这种现象叫做case穿透,就是进到case中的任何一个就会顺着这个往下执行,所以一般建议一个case语句后面跟一个break。
墨笙弘一 2015-06-09
  • 打赏
  • 举报
回复
case穿透,应该在每个case后面加上break语句,这样结果就不是你现在的结果了
dmwhw 2015-06-09
  • 打赏
  • 举报
回复
你没有break,跳到了case 1 之后的所有代码都会被执行
dmwhw 2015-06-09
  • 打赏
  • 举报
回复
你没有break,跳到了case 1 之后的所有代码都会被执行
马鹏程 2015-06-08
  • 打赏
  • 举报
回复
case后面没有break,执行完case 1,会接下啦执行case 2,以及下面的语句,不会跳出switch

51,407

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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