黑马程序员技术交流社区

标题: 选择结构,看程序写结果 [打印本页]

作者: 落星追恒    时间: 2016-3-14 11:22
标题: 选择结构,看程序写结果
本帖最后由 落星追恒 于 2016-3-17 21:45 编辑

i的值是2
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;
    }

我感觉是4 为啥是10啊?
作者: 莫盛强    时间: 2016-3-14 15:56
首先你传入的变量i是多少。
然后case后面没有跟break,所以会穿透下去。
作者: 任楚贤    时间: 2016-3-14 16:01
首先要调用这个方法,传入参数,还有每个case后面都要加break;
作者: flyhui    时间: 2016-3-14 21:41
变量i的值是多少?每个case的语句体下面都没有写break,不写的话会造成case穿透
作者: 大大阳    时间: 2016-3-14 22:07

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;
    }
请问你i接受的值是多少?

作者: Senmonfy    时间: 2016-3-14 22:12
因为没有break,函数会依次执行,直到结束。
作者: 赵国政    时间: 2016-3-15 00:34
哈哈 来签到!
作者: 落星追恒    时间: 2016-3-17 21:45
原来是break穿透的问题 谢谢大家




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