C 语言的 switch 语句

通用形式:

switch (测试表达式)
{
case 常量1:
	语句(可选)
	break;(可选)
case 常量2:
	语句(可选)
	break;(可选)
default:(可选)
	语句(可选)
	break;(可选)
}

代码示例:

#include<stdio.h>
int main(void)
{
	int a;
	printf("Enter a integer number (1 - 7), <=0 to quit:");
	while (scanf("%d", &a) > 0 && a > 0 && a < 8)
	{
		switch (a)
		{
		case 1:
			printf("Monthday.\n");
			printf("Enter a integer number (1 - 7), <=0 to quit:");
			break;
		case 2:
			printf("Tuseday.\n");
			printf("Enter a integer number (1 - 7), <=0 to quit:");
			break;
		case 3:
			printf("Wednesday.\n");
			printf("Enter a integer number (1 - 7), <=0 to quit:");
			break;
		case 4:
			printf("Thurthday.\n");
			printf("Enter a integer number (1 - 7), <=0 to quit:");
			break;
		case 5:
			printf("Friday.\n");
			printf("Enter a integer number (1 - 7), <=0 to quit:");
			break;
		case 6:
			printf("Saturday.\n");
			printf("Enter a integer number (1 - 7), <=0 to quit:");
			break;
		case 7:
			printf("Sunday.\n");
			printf("Enter a integer number (1 - 7), <=0 to quit:");
			break;
		}
	}

	printf("Bye!\n");

	return 0;
}

结果:

Enter a integer number (1 - 7), <=0 to quit:1
Monthday.
Enter a integer number (1 - 7), <=0 to quit:2
Tuseday.
Enter a integer number (1 - 7), <=0 to quit:6
Saturday.
Enter a integer number (1 - 7), <=0 to quit:7
Sunday.
Enter a integer number (1 - 7), <=0 to quit:8
Bye!

代码示例:

#include<stdio.h>
int main(void)
{
	int a;
	printf("Enter a integer number (1 - 7), <=0 to quit:");
	while (scanf("%d", &a) > 0 && a > 0 && a < 8)
	{
		switch (a)
		{
		case 1:
		case 2:
		case 3:
		case 4:
		case 5:
			printf("Workday.\n");
			printf("Enter a integer number (1 - 7), <=0 to quit:");
			break;
		case 6:
		case 7:
			printf("Weekend.\n");
			printf("Enter a integer number (1 - 7), <=0 to quit:");
			break;
		}
	}

	printf("Bye!\n");

	return 0;
}

结果:

Enter a integer number (1 - 7), <=0 to quit:1
Workday.
Enter a integer number (1 - 7), <=0 to quit:2
Workday.
Enter a integer number (1 - 7), <=0 to quit:4
Workday.
Enter a integer number (1 - 7), <=0 to quit:5
Workday.
Enter a integer number (1 - 7), <=0 to quit:6
Weekend.
Enter a integer number (1 - 7), <=0 to quit:7
Weekend.
Enter a integer number (1 - 7), <=0 to quit:8
Bye!

若 case 后面没有 break, 则会跳过标签而执行标签内的语句, 包括 default 标签内的语句.

代码示例:

#include<stdio.h>

int func(int a);

int main(void)
{
	int a = 1;
	func(a);

	return 0;
}

int func(int a)
{
	int b = 0;
	switch (a)
	{
	case 1:b = 10;
	case 2: b = 20;
	case 3: b = 30;
	default:b = 40;
	}
	printf("%d\n", b);
}

结果:

40

程序示例:

#include<stdio.h>
int main(void)
{
	int a;
	printf("Enter a integer number (1 - 7), q to quit:");
	while (scanf("%d", &a) > 0)
	{
		switch (a)
		{
		case 1:
		case 2:
		case 3:
		case 4:
		case 5:
			printf("Workday.\n");
			printf("Enter a integer number (1 - 7), q to quit:");
			break;
		case 6:
		case 7:
			printf("Weekend.\n");
			printf("Enter a integer number (1 - 7), q to quit:");
			break;
		default:
			printf("Input error.\n");
			printf("Enter a integer number (1 - 7), q to quit:");
		}
	}

	printf("Bye!\n");

	return 0;
}

结果:

Enter a integer number (1 - 7), q to quit:0
Input error.
Enter a integer number (1 - 7), q to quit:1
Workday.
Enter a integer number (1 - 7), q to quit:7
Weekend.
Enter a integer number (1 - 7), q to quit:8
Input error.
Enter a integer number (1 - 7), q to quit:q
Bye!

case 标签必须是整型常量表达式, 如字符类型, 1+0 等.

case 一般都只能指定一个值, 不能使用一个范围.

switch 的圆括号的测试表达式必须是整数类型, 包括字符类型.

default 和 case 的先后顺序无关, 可以在前或后.

switch 允许嵌套使用.

程序示例:

#include<stdio.h>
int main(void)
{
	int n = 1;
	int m = 2;

	switch (n)
	{
	case 1:m++;
	case 2:n++;
	case 3:
		switch (n)
		{
		case 1:n++;
		case 2:m++; n++; break;
		}
	case 4:m++;
		break;
	default:
		break;
	}
	printf("m = %d, n = %d\n", m, n);

	return 0;
}

结果:

m = 5, n = 3
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值