黑马程序员技术交流社区

标题: 师兄师姐 求告知结果 谢谢大家 [打印本页]

作者: 张水    时间: 2015-10-20 22:53
标题: 师兄师姐 求告知结果 谢谢大家
#include<stdio.h>
int main(){

int x = 2,y=3;
switch(x)
{
    case 2:
        y++;
    case 3:
        y+=2;
    case 4:
        y+=3;
    default:
        y = 0;
        break;
}
printf("y=%d\n", y);
    return 0;
}


作者: Brisingr    时间: 2015-10-20 23:27
y=0,全都穿透了
作者: 陌忆    时间: 2015-10-21 23:43
Brisingr 发表于 2015-10-20 23:27
y=0,全都穿透了

为什么不等于4,x不是赋值为2了吗
作者: Brisingr    时间: 2015-10-22 06:36
陌忆 发表于 2015-10-21 23:43
为什么不等于4,x不是赋值为2了吗

x=2,所以运行case 2,但是因为没有break,所以会继续运行case 3,一直运行到default里面,y被赋值为0,然后break了
作者: 开枪吧_Z7K5Z    时间: 2015-10-22 08:19
Y=0!你想表达什么
作者: 陌忆    时间: 2015-10-22 12:07
Brisingr 发表于 2015-10-22 06:36
x=2,所以运行case 2,但是因为没有break,所以会继续运行case 3,一直运行到default里面,y被赋值为0,然后 ...

原来是这样啊,多谢了
作者: wwf707542865    时间: 2015-10-23 19:16
楼上面几位已经帮你解答了
作者: 张水    时间: 2015-10-23 21:49
Brisingr 发表于 2015-10-22 06:36
x=2,所以运行case 2,但是因为没有break,所以会继续运行case 3,一直运行到default里面,y被赋值为0,然后 ...

谢谢师兄




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