A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 Sheng.cn 于 2015-5-1 23:31 编辑

class  Test
{
public static void main(String[] args)
{
  int x =5;
  switch(x++)
  {
   default:
    System.out.println("a:"+x);
   case 6:
    System.out.println("b:"+x++);
   case 7:
    System.out.println("c:"+x);
   case 8:
    System.out.println("d:"+x);
  }
}
}

14 个回复

倒序浏览
受教了,大大的有啊
回复 使用道具 举报
呵呵,结果就是全部都会输出:a:6 b:6 c:7 d:7,因为default中没有break语句,会一直执行下去!
回复 使用道具 举报
a:6
b:6
c:7
d:7
回复 使用道具 举报
为什么我看不出来是6.6.7.7啊 我看的是6.7.7.7
回复 使用道具 举报
米江波 发表于 2015-5-2 09:55
为什么我看不出来是6.6.7.7啊 我看的是6.7.7.7

x++语句会先把x的值赋给输出判断和输出语句,然后再执行x+1;所以switch判断语句接收的是x的值,之后x的值变为6,case语句中没有5这个数值,所以直接执行defaut语句,输出a:6;由于语句中没有break语句,所以程序会继续往下执行,case6语句中,同样x++先传递x的数值,然后再执行自加,所以这句输出的是b:6。
回复 使用道具 举报 1 0
a6b6c7c7~~~~~
回复 使用道具 举报
guoyangpeng 来自手机 中级黑马 2015-5-2 10:38:21
8#
a:6
b:6
c:7
d:7
回复 使用道具 举报
a:6
b:6
c:7
d:7
从上往下一直执行下去,因为没有遇到break,直至程序末尾结束
回复 使用道具 举报
6   6    7      7
回复 使用道具 举报
学习啦,嘿嘿
回复 使用道具 举报
输出 6 6 7 7
回复 使用道具 举报
好,学习了
回复 使用道具 举报
6 6 7 7  {:2_35:}
回复 使用道具 举报
Cat 来自手机 中级黑马 2015-5-2 19:10:17
15#
学习一下~
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马