用于多分支的情况
例如:
水果价格
给定四种水果,分别是苹果(apple)、梨(pear)、桔子(orange)、葡萄(grape),单价分别对应为3.00元/公斤、2.50元/公斤、4.10元/公斤、10.20元/公斤。用户可以输入编号1~4查询对应水果的单价,用户输入0即退出;输入其他编号,显示价格为0。
首先在屏幕上显示以下菜单:
[1] apple
[2] pear
[3] orange
[4] grape
[0] exit
输入样例:
3
输出样例:(英文单词前面有个空格,输出显示两位小数)
[1] apple
[2] pear
[3] orange
[4] grape
[0] exit
price=4.10
#include<stdio.h>
int main()
{
printf("[1] apple\n[2] pear\n[3] orange\n[4] grape\n[0] exit\n");
int num = 0;
scanf("%d\n",&num);
switch(num)
{
case 1:
printf("price=3.00\n");
break;
case 2:
printf("price=2.50\n");
break;
case 3:
printf("price = 4.10\n");
break;
case 4:
printf("price=10.20\n");
break;
case 0:
break;
default:
printf("price=0\n");
break;
}
return 0;
}
int num = 0;
scanf("%d\n",&num);
switch(num)
{
case 1:
printf("price=3.00\n");
break;
根据输入的num的值进入相对应的case,再由break退出。switch括号内的表达式num必须为整型,case后必须是整型常量表达式。
default:
printf("price=0\n");
break;
考虑到可能非法输入,利用default排除。
一个case不一定要与一个break匹配,例如:
#include<stdio.h>
int main()
{
int day = 0;
scanf("%d\n", &day);
switch (day)
{
case 1:
case 2:
case 3:
case 4:
case 5:
printf("工作日\n");
break;
case 6:
case 7:
printf("休息日\n");
break;
default:
printf("输入错误\n");
break;
}
return 0;
}
输入1,进入case 1,一直到case5,输出工作日遇到break退出switch
输入2,
输入3,
......以此类推
输入6,进入case6,没有break,再进入case7,输出休息日遇break退出switch
输入1-7以外的数字或符号
输出:输入错误