猿问

麻烦解释下这个程序怎么运行出这个结果的,谢谢。

        int y=3;

int x=3;

switch (x+3){

case 6: y=1;

default: y+=1;

System.out.println(x);

System.out.println(y);

运行后结果是3   2,不理解为什么是这个结果。

而且一旦把switch (x+3)改成switch (x+2)或x+任意数或x-任意数结果就变成了  3   4.

是在myeclipse运行的,看debug调试也看不懂。

求教,谢谢。


莫summer
浏览 1557回答 2
2回答

woshiajuana

int y=3;int x=3;switch (x+3){case 6: y=1;default: y+=1;System.out.println(x);System.out.println(y);首先,switch (x+3)//这句话不会改变变量x的值  除非是x=x+3;所以x的值还是3因为x+3 = 6,所以匹配case 6,执行y=1,这里y的值由3变成1,然后因为没有break跳出语句,继续向下执行default: y+=1; y变成了2,然后switch 语句结束。所以最终结果是3 2如果switch (x+3)改成switch (x+2)就不会匹配case 6,直接执行default: y+=1;然后跳出switch语句,这个时候y为3,3+1的话就为4呀

菜菜say

楼上说的对√
随时随地看视频慕课网APP

相关分类

Android
Java
我要回答