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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© \(^o^)/ 中级黑马   /  2014-5-19 21:24  /  995 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

第一种:结果为5
int x = 2,y=3;
switch(x)
{
  default:
   y++;
  case 3:
   y++;
   break;
  case 4:
   y++;
}
System.out.println("y="+y);

第二种:结果为4
int x = 2,y=3;
switch(x)
{
    case 3:
   y++;
   break;
  case 4:
   y++;
default:
   y++;

}
System.out.println("y="+y);


为什么把default放在上面和下面的位置得出来的结果不同。



2 个回复

倒序浏览
这是在考你 有没有break  怎么运行
回复 使用道具 举报
本帖最后由 万彪 于 2014-5-19 21:57 编辑

上面那个在碰到break之前有两次y++,y=3变成=5
下面那个碰到break之前只有一次y++,y=3变成=4
虽然我刚刚学,感觉应该是这样的,不过,这样运算感觉语法没问题,但这个不应该这么编码吧,case选择语句,直接默认就选择了break之上的运行。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马