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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 余睿 中级黑马   /  2012-11-5 15:01  /  1520 人查看  /  8 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

    就在刚才我练习switch语句,看到这样一段代码
  1. int x = 2,y=3;

  2. switch(x)
  3. {
  4. default:
  5. y++;
  6. case 3:
  7. y++;
  8. case 4:
  9. y++;
  10. }

  11. System.out.println("y="+y);
复制代码
我分析了一下,结果应该是6,于是呢,为了验证我的判断,我就编译了一下,输出了结果,但是y=5,我不信邪的检查了好几遍,运行了五六遍,将default的位置改动了好几遍,结果一直是5,我的人生观,价值观当时就颠覆了,将题目发给了朋友,回复结果是6,我告诉他我这编译完运行结果是5啊,朋友也抑郁了,于是我怕我弄错了,开始在网上找switch语句的执行顺序,得到的答案是
switch表达式的值决定选择哪个case分支,如果找不到相应的分支,就直接从"default" 开始输出。
当程序执行一条case语句后,因为例子中的case分支中没有break 和return语句,所以程序会执行紧接于其后的语句
对应上面的代码,结果应该是6啊,这到底是怎么回事呢!!
    终于,我看了一眼dos编译的地方,悲催的我把文件名写错了 Test4 写成了Test ,这次血的教训,让我知道了意义命名的重要性,今后一定要注意。

评分

参与人数 1技术分 +1 收起 理由
冯海霞 + 1 赞一个!

查看全部评分

8 个回复

正序浏览
余睿 中级黑马 2012-11-6 10:52:16
9#
蒙武辉 发表于 2012-11-6 10:05
细心,从现在开始就应该培养这种习惯了。

太惭愧了 今后一定注意
回复 使用道具 举报
蒙武辉 黑马帝 2012-11-6 10:05:03
8#
细心,从现在开始就应该培养这种习惯了。
回复 使用道具 举报
余睿 中级黑马 2012-11-6 09:44:51
7#
徐-星星 发表于 2012-11-5 17:44
说了一大堆,原来是文件名写错了,忙活了半天,确实是血的教训,做事情一点都不能马虎大意啊!希望你学习愉 ...

是了 是了 一起努力
回复 使用道具 举报
说了一大堆,原来是文件名写错了,忙活了半天,确实是血的教训,做事情一点都不能马虎大意啊!希望你学习愉快!加油!
回复 使用道具 举报
楼主 我果断验证了一下  果断是6{:soso_e117:}
回复 使用道具 举报
宫明星 发表于 2012-11-5 16:37
如果没看到最后一行,我就也抑郁了,楼主你闹哪样啊

{:2_33:}哈哈 我把我血的教训放上来警惕我自己 告诫大家
回复 使用道具 举报
如果没看到最后一行,我就也抑郁了,楼主你闹哪样啊
回复 使用道具 举报
{:soso_e113:}
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马