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