返回首页   进站必读


4.2 switch case

switch语句可以产生具有多个分支的控制流程。它的格式是:

switch (控制表达式) 
{
	case 常量表达式: 语句列表
	case 常量表达式: 语句列表
	...
	default: 语句列表
}

例如:

实现一个函数,他能根据参数进行加减乘除运算;

#include <stdio.h>


int main(void)
{
	int a, b;
	char c;


	printf("please input(num1 + num2):");
	scanf("%d %c %d", &a, &c, &b);
	switch (c)
	{
		case '+': 
			printf("%d %c %d = %d\n", a, c, b, a + b);
			break;
		case '-': 
			printf("%d %c %d = %d\n", a, c, b, a - b);
			break;
		case '*': 
			printf("%d %c %d = %d\n", a, c, b, a * b);
			break;
		case '/': 
			printf("%d %c %d = %d\n", a, c, b, a / b);
			break;
		case '%': 
			printf("%d %c %d = %d\n", a, c, b, a % b);
			break;
		default: 
			printf("Invalid!\n");
			break;
	}


	return 0;
}

另外还需注意:
1).每条分支语句最好都加上break,除非你有特殊的需求;
2).如果不加break语句,程序会从匹配的case语句进入,从第一个遇到的break语句跳出;

如下示例:

switch (grade)
{

	case 'A': printf("85~100\n");
	case 'B': printf("70~84\n");
	case 'C': printf("60~69\n");
	case 'D': printf("<60\n");
	default:  printf("error\n");
}

若grade的值等于’A’,则将连续输出:

85~100
70~84
60~69
<60