switch语句没有break造成错误

switch语句中,如果有加break则运行到时会跳出switch语句,执行switch语句之后的语句;如果没加break则会去运行switch中后续的语句,比如运行到后续别的case中。 case只是个入口,如果没有break,会从入口处将后面所有的case全部执行一次。例如:

#include<iostream>
using namespace std;
int main()
{
    int i = 0;
    while(i < 3)
    {
        switch (i)
        {
        case 0:
            cout << "i=0"<<endl;
        case 1:
            cout <<"i=1" << endl;
        case 2:
            cout << "i=2" << endl;
        default:
            cout << "default"<<endl;
        }
        i++;
    }
}

输出:

i=0
i=1
i=2
default
i=1
i=2
default
i=2
default

在i=0时,执行了i=0的操作之后,程序还输出了之后的case对应的语句!

发布了267 篇原创文章 · 获赞 38 · 访问量 3万+

猜你喜欢

转载自blog.csdn.net/dghcs18/article/details/104074004
今日推荐