您的位置:首页 > 编程语言 > C语言/C++

C++中的switch语句的break问题

2015-08-11 20:41 501 查看
今天笔试360了,再次遇到这个简单但是又容易出错的问题。

首先看下正确的写法:

int main()
{
	int i;
	for(i=0;i<3;i++)
	{
		switch(i)
		{                               //switch语句一定加大括号
			case 0:                 //注意格式 case 0: 这里不用加大括号
				cout<<i;
				break;          //每个case后要break
			case 2:
				cout<<i;
				break;
			default:
				cout<<i;
				break;
		}
	}
	system("pause");
	return 0;
}


程序输出是:012

加break的意思是说,找到合适的case执行后,下面的case就不再执行,而是退出当前switch语句。
-------------------------------------------------------------------------------------------------------------------------------------------------

容易考到的点是不加break会怎样?

看下面代码。

int main()
{
	int i;
	for(i=0;i<3;i++)
	{
		switch(i)
		{
			case 0:
				cout<<i;
			case 2:
				cout<<i;
			default:
				cout<<i;
		}
	}
	system("pause");
	return 0;
}


程序输出是000122

int main()
{
	int i;
	for(i=0;i<3;i++)
	{
		switch(i)
		{
			case 0:
				cout<<i;
			case 2:
				cout<<i;
				break;
			default:
				cout<<i;
		}
	}
	system("pause");
	return 0;
}


程序输出是0012

结论:就是说找到适合的case前不执行,找到对应case后都执行,直到遇到break或者switch语句结束!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: