黑马程序员技术交流社区

标题: 小程序。。。。谁能说说为什么是7啊 [打印本页]

作者: 曾翀    时间: 2014-7-29 19:58
标题: 小程序。。。。谁能说说为什么是7啊
int  a=2;

switch(a)
{
        case 1:
                a+=1;
break;
case 2:
                a+=2;
case 3:
                a+=3;
        break;
case 4:
                a+=4;
break;
        default:
                a=0;
}
System.out.println(a);
作者: 晓风    时间: 2014-7-29 20:08
因为变量 a 初始化为 2,进入switch的时候,直接执行满足case 2,此时a += 2; 结果是: a=4,又因为case 2,没有break跳出,此时继续执行case 3,且 a = 4,则 a += 3;执行之后,结果是:a = 7;
作者: hmid    时间: 2014-7-29 20:19
楼上正解
作者: @for    时间: 2014-7-29 20:26
a + 2 + 3 + break;
作者: 南柯一梦    时间: 2014-7-29 23:04
当case 2时,匹配成功,然后执行a+=2--a=4;因下面没break执行 case 3得到a=7,然后break,switch结构结束
作者: 梧桐树下    时间: 2014-7-29 23:21
是这样的,




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