黑马程序员技术交流社区

标题: 一点小总结 [打印本页]

作者: 余睿    时间: 2012-11-5 15:01
标题: 一点小总结
    就在刚才我练习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 ,这次血的教训,让我知道了意义命名的重要性,今后一定要注意。

作者: 坚持不懈    时间: 2012-11-5 15:51
{:soso_e113:}
作者: 宫明星    时间: 2012-11-5 16:37
如果没看到最后一行,我就也抑郁了,楼主你闹哪样啊
作者: 余睿    时间: 2012-11-5 16:43
宫明星 发表于 2012-11-5 16:37
如果没看到最后一行,我就也抑郁了,楼主你闹哪样啊

{:2_33:}哈哈 我把我血的教训放上来警惕我自己 告诫大家
作者: 為你,一世溫柔    时间: 2012-11-5 17:10
楼主 我果断验证了一下  果断是6{:soso_e117:}
作者: 徐-星星    时间: 2012-11-5 17:44
说了一大堆,原来是文件名写错了,忙活了半天,确实是血的教训,做事情一点都不能马虎大意啊!希望你学习愉快!加油!
作者: 余睿    时间: 2012-11-6 09:44
徐-星星 发表于 2012-11-5 17:44
说了一大堆,原来是文件名写错了,忙活了半天,确实是血的教训,做事情一点都不能马虎大意啊!希望你学习愉 ...

是了 是了 一起努力
作者: 蒙武辉    时间: 2012-11-6 10:05
细心,从现在开始就应该培养这种习惯了。
作者: 余睿    时间: 2012-11-6 10:52
蒙武辉 发表于 2012-11-6 10:05
细心,从现在开始就应该培养这种习惯了。

太惭愧了 今后一定注意




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2