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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

public static int getValue(int i) {        int result = 0;        switch (i) {        case 1:            result = result + i;        case 2:            result = result + i * 2;        case 3:            result = result + i * 3;        }        return result;    }

11 个回复

倒序浏览
回复 使用道具 举报
---------------------10
回复 使用道具 举报
这么简单是4吗收到回复呕
回复 使用道具 举报
case2 ;result= result+i*2result=4
回复 使用道具 举报
致和崇宁 发表于 2016-10-8 01:22
这么简单是4吗收到回复呕

怎么可能这么简单
回复 使用道具 举报
                      4呀
来自宇宙超级黑马专属苹果客户端来自宇宙超级黑马专属苹果客户端
回复 使用道具 举报
本帖最后由 skyleon 于 2016-10-9 09:15 编辑

结果是10,因为当i是2时,经过匹配开始执行case 2后的语句,此时result = 4,注意这里没有"break;"语句结束switch,继续执行后面的result = result + i * 2,结果为result =10,此时遇到“}”,结束switch语句,return返回result的值。这就是没有break;语句造成的case穿透.
来自宇宙超级黑马专属苹果客户端来自宇宙超级黑马专属苹果客户端
回复 使用道具 举报
chensc 金牌黑马 2016-10-9 06:40:43
9#
学习学习!
回复 使用道具 举报
结果是10,没有break会穿透的
来自宇宙超级黑马专属苹果客户端来自宇宙超级黑马专属苹果客户端
回复 使用道具 举报
Jarc 高级黑马 2016-10-9 20:27:50
11#
没有break 肯定是会执行到底10
回复 使用道具 举报
skyleon 发表于 2016-10-8 11:59
结果是10,因为当i是2时,经过匹配开始执行case 2后的语句,此时result = 4,注意这里没有"break;"语句结束 ...

终于看到一个对的了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马