开发者社区 问答 正文

【红尘的Java碎碎念】8-8

下面的代码执行完后 x 的值是( )

public static void main(String[] args) {
    int i = 10,j = 25,x = 30;
    switch(j-i) {
        case 15: 
            x++;
        case 16:
            x+=2;
        case 17:
            x+=3;
        default:
            --x;
    }
}

A:35

B:36

C:34

D:16

展开
收起
请回答1024 2020-08-08 21:35:36 6617 分享
分享
版权
举报
阿里云 AI 助理回答

这段Java代码中,switch(j-i)计算的结果是15,因为j是25,i是10,所以j-i等于15。接下来,根据switch-case的结构,它会执行case 15对应的代码块。但是,这里有一个常见的陷阱:在没有break语句的情况下,case会一直往下执行,直到遇到break或者switch结构结束。

因此,当执行到case 15:时,x没有赋值操作(即x ;这行实际上什么也没做),然后继续执行下面的case,依次将x赋值为2(case 16:),然后再次赋值为3(case 17:)。最后,由于没有匹配到任何其他的case,程序会执行default部分,--x;使x的值减1,变为2。

所以,最终x的值是2。

看起来题目中的选项并不包含这个答案,可能是问题设置时的疏忽。基于给出的代码逻辑,正确答案应该是2,但这个选项并未列出在你的选项A-D中。

有帮助
无帮助
AI 助理回答生成答案可能存在不准确,仅供参考
0 条回答
写回答
取消 提交回答
问答分类:
问答标签:
问答地址: