黑马程序员技术交流社区

标题: 关于switch循环 [打印本页]

作者: elessarcheung    时间: 2016-3-13 18:37
标题: 关于switch循环
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;
    }
当输入为2的时候返回值为什么是10
作者: 参禅悟道    时间: 2016-3-13 18:53
本帖最后由 参禅悟道 于 2016-3-13 18:54 编辑

那是因为你没有在result = result + i * 2;这局代码下面写上break;其实在每个case里面的break的作用就是当该case为true,则跳出整个switch循环 ;
如果你不写break;它还会继续往下执行case 3:  result = result + i * 3;因为这个时候result已经等于4了,i=2;所以result=result+i*3;之后result就等于10了。
不知我这样说,你明白了吗;



QQ截图20160313185218.png (11.9 KB, 下载次数: 7)

QQ截图20160313185218.png

作者: 小柴天雅    时间: 2017-3-4 00:48
高手就是不同的
作者: Alonesss    时间: 2017-3-4 09:21
感谢楼主分享

作者: Alonesss    时间: 2017-3-4 09:45
感谢分享





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