为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

莫summer 2016-08-23 17:20:38
        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呀


查看完整回答
9 反对 回复 2016-08-23
?
菜菜say

TA贡献2条经验 获得超0个赞

楼上说的对√

查看完整回答
反对 回复 2016-08-23
  • 2 回答
  • 0 关注
  • 1487 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信