黑马程序员技术交流社区

标题: y为什么等于0??不是应该等于3么 [打印本页]

作者: 肖伟    时间: 2014-7-29 16:14
标题: y为什么等于0??不是应该等于3么
本帖最后由 肖伟 于 2014-7-29 16:27 编辑

#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;
}

作者: ofVv    时间: 2014-7-29 16:22
case中没有break语句的话,会继续执行下一个case中的语句,直到碰见break为止。
作者: 肖伟    时间: 2014-7-29 16:27
ofVv 发表于 2014-7-29 16:22
case中没有break语句的话,会继续执行下一个case中的语句,直到碰见break为止。 ...

原来如此,想了半天硬是没想明白,谢啦
作者: Ygenius    时间: 2014-7-29 22:54
楼上正解- -

作者: 枫·殇    时间: 2014-7-29 23:09
肖伟 发表于 2014-7-29 16:27
原来如此,想了半天硬是没想明白,谢啦

额我也范过这样的错误,
作者: 梧桐树下    时间: 2014-7-29 23:20
这不是c语言吗
作者: 陆习康    时间: 2014-8-2 15:33
一楼正解,望楼主细查
作者: ヅ光着脚丫dε尐    时间: 2014-8-2 16:47
这种结构,切记break。。。




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