if-else结构一般表示两个分支或是嵌套表示少量的分支,但是如果分支很多的话,还是用switch-case结构。基本格式为:
switch(variable)
{
case Value1:
//program code
break;
case Value2:
//program code
break;
case Value3:
//program code
break;
...
default:
break;
}
- 每个case语句的结尾不要忘了加break,否则将会导致分支重叠,除非有意使多个分支重叠。
- 最后必须使用default分支,即使程序真的不需要default处理。
- case后面只能是整型或者字符型的常量或常量表达式。
- 在case子句中,虽然包含了一个以上的执行语句,但可以不必用花括号括起来,会自动顺序执行本case后面的所有语句,当然加上花括号也可以。
多个case标号可以共用一组执行语句,例如:
#include <stdio.h>
#include <stdlib.h>
int main()
{
char grade;
scanf("%c", &grade);
printf("Your score:");
switch(grade)
{
case 'A':
case 'B':
case 'C':
printf(">60\n");
break;
case 'D':
printf("<60\n");
break;
default:
break;
}
return 0;
}
当grade的值为'A', 'B' ,'C'时都执行同一组语句,输出”>60“,然后换行。
#include <stdio.h>
int main()
{
void action1(int, int), action2(int, int);
char ch;
int a=15, b = 23;
ch = getchar();
switch(ch)
{
case 'a':
case 'A':
action1(a, b);
break;
case 'b':
case 'B':
action2(a, b);
break;
default:
putchar('\a');
break;
}
return 0;
}
void action1(int x, int y)
{
printf("x+y=%d\n", x+y);
}
void action2(int x, int y)
{
printf("x*y=%d\n", x*y);
}
捕获.JPG