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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 西门雅虎 中级黑马   /  2015-7-11 23:56  /  434 人查看  /  12 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文


  • 下面程序执行的结果是?()
    int x=2,y=3;
    switch(x)
    {
       default:
          y++;
       case 3:
          y++;
       case 4:
          y++;
    }
    System.out.println("y="+y);
    A.  3
    B.  4
    C.  5
    D.  6      这题是怎么来解呢,求大神来指导一下


12 个回复

倒序浏览
选D 因为x=2所以在switch语句中这三个分支都会执行,这样y就自加了3次,最后结果是6.
回复 使用道具 举报
D,因为x的值是2,所以从switch语句的default开始执行,而在switch块中在没有遇到break语句时会一直往下执行
回复 使用道具 举报
先找x=2的选项,没找到,就执行default,因为没有break;所以就继续执行,y加了3就是6了
回复 使用道具 举报
360638403 来自手机 中级黑马 2015-7-12 00:17:03
报纸
学习了,
回复 使用道具 举报
没有break啊
回复 使用道具 举报
路途 中级黑马 2015-7-12 09:17:09
7#
楼上说的对
回复 使用道具 举报
aps50 发表于 2015-7-12 00:02
选D
case没有2,所以执行default,之后会执行所有代码区(y++;y++;y++);
由于没有break,所以3次y++,y就成 ...

好,thanks
回复 使用道具 举报
学习了!
回复 使用道具 举报
我是来学习的,谢谢了
回复 使用道具 举报
D.case中没有2,直接找到default,如果没有遇到break,就顺序执行,也就是执行三次y++,结果为6.
回复 使用道具 举报
选D,主要是理解switch语句中的break的用法,因为没有break,case语句即使条件不满足也会按照顺序向下执行。。。
回复 使用道具 举报
多累积,巩固下小知识点
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马