3第二章基本语句_多分支选择语句
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
case'B':printf(“70~84");break;
case'C':printf(“60~69");break;
case'D':printf(“<60");break;
default:printf("error!");
}
retuen 0;
}
例题
2、从键盘上输入周一到周日的数字1~7, 要求输出其对应的英文拼写,若输入其它数 字则输出“error”。
switch(表达式){
case 常量表达式 1: 语句 1;[语句11;…;break;]
case 常量表达式 2: 语句 2;[语句21;…;break;]
…
case 常量表达式 n: 语句 n;[语句n1;…;break;]
default
: 语句 n+1;
}
在执行一个case子句后,遇到break则使程序流程跳出 switch语句,执行switch语句下面的语句;
}
int main(){
int a;
printf("input integer number: ");
scanf("%d",&a);
switch (a){
case 1:printf("Monday\n");
break;
case 2:printf("Tuesday\n");break;
2、switch后面括号内的“表达式”,其值的类型应为 整数类型(包括字符型);
3、语句体内可包含多个case语句,最多包含一个 default语句。
4、可以没有default语句,这时如果没有和switch语 句的表达式相匹配,则不执行任何语句,流程转到 switch后面的语句执行;
…
case 常量表达式 n: 语句 n;[语句n1;…;break;]
default
: 语句 n+1;
}
1、其语义是:计算表达式的值。 并逐个与其后的常量 表达式值相比较,当表达式的值与某个常量表达式的值 相等时, 即执行其后的语句,然后不再进行判断,继 续执行后面所有case 后的语句。如表达式的值与所有 case 后的常量表达式均不相同时,则执行 default 后 的语句。
500<=s<1000
1000<=s<200 0 2000<=s<300 0 3000<=s
0% 2% 5% 8%
10%
15%
2程序
int main() { int c,s; float p,w,d,f; printf(“please enter price,weight,discount:”); scanf(“%f,%f,%d”,&p,&w,&s); if (s>=3000) c=12; else c=s/250; switch(c) { case 0:d=0;break; case 1:d=2;break;
第二章基本语句(3) 多分支选择语句
河师大附中信息技术教学组
5.4 switch 语句
C语言还提供了另一种用于多分支选择的 switch 语句, 其一 般形式为:
switch(表达式){
case 常量表达式 1: 语句 1;[语句11;…;break;]
case 常量表达式 2: 语句 2;[语句21;…;break;]
int main(){
int a;
printf("input integer number: ");
scanf("%d",&a);
switch (a){
case 1:printf("Monday\n");
case 2:printf("Tuesday\n");
case 3:printf("Wednesday\n");
default:printf("error\n");
}
system("pause");
return 0;
}
作业
1、计算器程序。用户 输入运算数和四则运 算符,输出计算结果。
2、运输公司对用户计 算运输费用。执行标 准1公里1元钱,但路 程越远,每吨运费越 低。打折标准如右图:
S<250 250<=s<500
5、各个case语句不要求次序,default语句可以放在 第一个。
6、每一个case语句的常量互不相同;否则就会出现互 相矛盾的现象。
7、switch语句在找到相匹配的case语句入口后,就不 做任何判断,执行它后面的所有case的语句,除非遇 到break语句;
8、case常量后面可以跟多个语句;例如:
case 4:printf("Thursday\n");
case 5:printf("Friday\n");
case 6:printf("Saturday\n");
case 7:printf("Sunday\n");
default:printf("error\n");
}
return 0;
printf(“freight=%10.2f\n”,f); system(“pause”); return 0; }
case 2: case 3:d=5;break; case 4: case 5: case 6: case 7:d=8;break; case 8: case 9: case 10: case 11:d=10;break; case 12: d=15;break; } f=p*w*s*(1-d/100);
例题:
1、要求按照成绩的等级输出百分制分数段, A等为85分以上,B等为70~84分,C等为 60~69分,D等为60分以下,成绩的等级由 键盘输入。
int main()
{
Hale Waihona Puke Baidu
char ch;
scanf("%c",&ch);
switch(ch)
{
case'A':printf("85~100\n");break;
case 3:printf("Wednesday\n");break;
case 4:printf("Thursday\n");break;
case 5:printf("Friday\n");break;
case 6:printf("Saturday\n");break;
case 7:printf("Sunday\n");break;