216 switch语句 ■请将输入的百分制成绩,转换成五分制成绩输出, 转换标准如下 90≤s<100 80<s<90 grade ABCDE 70<s<80 60<s<70 0<s<60 对于这种类型的问题,需要讨论的情况比较多, 如果用i嵌套的层次会比较多,程序可读性不好, 这时通常会使用多分支选择语句 switch
2.1.6 switch语句 ◼ 请将输入的百分制成绩,转换成五分制成绩输出, 转换标准如下: grade = A 90≤ s ≤100 B 80≤ s <90 C 70≤ s <80 D 60≤ s <70 E 0≤ s <60 对于这种类型的问题,需要讨论的情况比较多, 如果用if 嵌套的层次会比较多,程序可读性不好, 这时通常会使用多分支选择语句switch
216 switch语句 l、 switch语句的格式 switch(表达式) 代表可选项 case常量表达式1:语句1;[ break; case常量表达式2:语句2; break;l case常量表达式n:语句n;[ break;l default:语句序列n+1 注意:(1) switch后的表达式一般多为整型或字符型表达式 (2)case后常量表达式的值必须互不相同 (3)语句1至语句n+1为多条语句时可省略{} (4)多个case可以共用一组执行语句 (5) switch语句可以嵌套
2.1.6 switch语句 1、switch语句的格式 switch ( 表达式 ) { case 常量表达式1 : 语句1; [break;] case 常量表达式2 : 语句2; [break;] : : : case 常量表达式n : 语句n; [break;] [ default : 语句序列n+1 ] } 注意: (1) switch后的表达式一般多为整型或字符型表达式 (2) case后常量表达式的值必须互不相同 (3) 语句1至语句n+1为多条语句时可省略{ } (4) 多个case可以共用一组执行语句 (5) switch语句可以嵌套 […]代表可选项
216 switch语句 2、 switch的执行过程(语句1-语句n后没使用 break;) (1)计算 switch后表达式的值 switch(表达式) {case常量表达式1:语句1; (2)如果表达式的值与某个 case常量表达式2:语句2; case常量表达式的值相等时, 就执行此case后的语句,执行cae常量表达式n:语句n; 后的语句,如果表达式的值令eam:语句n+1; 完后将继续执行下一个case 所有case常量表达式的值都不 同,就执行 default后的语句, 执行后结束整个 switch语句
2.1.6 switch语句 2、switch的执行过程 ( 语句1--语句n后没使用break; ) switch ( 表达式 ) { case 常量表达式1 : 语句1; case 常量表达式2 : 语句2; : : : case 常量表达式n : 语句n; default : 语句n+1; } (1) 计算switch后表达式的值 (2) 如果表达式的值与某个 case常量表达式的值相等时, 就执行此case后的语句, 执行 完后将继续执行下一个case 后的语句, 如果表达式的值与 所有case常量表达式的值都不 同, 就执行default后的语句, 执行后结束整个switch语句
216 switch语句 例 void main() 输入x为2输入x为6 i int x,y; 输出:20 输出:0 scanf(“%d”,&x) 30 switch(x) i case 1: y=10; printf( %dn", y) case 2: y=20; printf( %d\n",y); case3:y=30; printf(“%dn”,y); default:y=0; printf(“%dm”,y); 注意: switch中没有使用 break
2.1.6 switch语句 例 void main ( ) { int x, y ; scanf(“%d” , &x) ; switch (x) { case 1 : y=10 ; printf(“%d\n” , y) ; case 2 : y=20 ; printf(“%d\n” , y) ; case 3 : y=30 ; printf(“%d\n” , y) ; default : y=0 ; printf(“%d\n” , y) ; } } 注意: switch中没有使用break; 输入x为 2 输出: 20 30 0 输入x为 6 输出: 0
216 switch语句 注意:执行一个case分支后,应用 break结束 switch语句 void main( i int x,y; 输入x为2 scanf(%d”,&x) 输出:20 switch (x) { case 1:y=10; printf((“%dn”,y); break case 2: y=20; printf("%odin, y); break; case 3: y=30; printf(%odn, y); break; default:y=0; printf((“%dm”,y)
2.1.6 switch语句 注意 : 执行一个case 分支后, 应用break结束switch语句 void main ( ) { int x, y ; scanf(“%d” , &x) ; switch (x) { case 1 : y=10 ; printf(“%d\n” , y) ; break; case 2 : y=20 ; printf(“%d\n” , y) ; break; case 3 : y=30 ; printf(“%d\n” , y) ; break; default : y=0 ; printf(“%d\n” , y) ; } } 输入x为 2 输出: 20