switch的陷阱

switch语句的执行流程图:

我们在使用switch语句的时候,会用到break语句。

我们先看下面的代码:

#include <stdio.h>

int main()
{
	int n = 5;
	switch (n)
	{
	case 1:printf("星期一\n");
	case 2:printf("星期二\n");
	case 3:printf("星期三\n");
	case 4:printf("星期四\n");
	case 5:printf("星期五\n");
	case 6:printf("星期六\n");
	case 7:printf("星期日\n");
	default:printf("请重新输入:\n");
	}
	return 0;
}

如果你认为输出的是 星期五 ,那么你就错了。显示的应该是:

这是一个break引起的错误。

一般,我们在用switch语句的时候,每条case语句后面都会跟一个break。

int main()
{
	int n = 5;
	switch (n)
	{
	case 1:printf("星期一\n");
		break;
	case 2:printf("星期二\n");
		break;
	case 3:printf("星期三\n");
		break;
	case 4:printf("星期四\n");
		break;
	case 5:printf("星期五\n");
		break;
	case 6:printf("星期六\n");
		break;
	case 7:printf("星期日\n");
		break;
	default:printf("请重新输入:\n");
		break;
	}
	return 0;
}

如果你想从一个分支跳转到下一个分支,就可以这样做:

int main()
{
	int n = 3;
	switch (n)
	{
	case 4:case 3:case 2:case 1:
		printf("hello world\n");
        break;
	case 0:break;
	default:break;
	}
	return 0;
}

注:忘记使用break语句是编程时常犯的错误。虽然有时会故意忽略break以便多个分支共享代码,但通常情况下省略break是因为疏忽。 

猜你喜欢

转载自blog.csdn.net/qq_54880517/article/details/123149967