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调试也看不懂。求教,谢谢。
2 回答
已采纳
woshiajuana
TA贡献211条经验 获得超152个赞
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呀
添加回答
举报
0/150
提交
取消