第四章选择结构程序设计.ppt
文本预览下载声明
2、语句执行流程: 指语句的最后一条是否为break 简单语句或复合语句 break break 有 无 break 有 无 有 计算表达式 常量1 常量2 常量n = 语句1 … = = = 语句2 语句n 其它 = 语句n+1 无 值 case语句出 现的次序并 不影响执行 结果。 说明: 表达式类型一般是整型或字符型。 若case后面跟break;语句,可迫使switch结束。 若case后面不加break;其后所有的case语句都被执行,除非遇到另一终止switch的语句。 语句序列不管有几条,都不加{}。 Default是可选项,用于捕捉错误。 例4-4:假设用0、1、2......6分别表示星期日、星期一......星期六。现输入一个数字,输出对应的星期几的英文单词。如果输入3,输出“Wednesday”。 #include stdio.h void main() {int n; scanf(%d,n); switch(n) {case 0: printf(Sunday\n); case 1: printf(Monday\n); case 2: printf(Tuesday\n); case 3: printf(Wednesday\n); case 4: printf(Thursday\n); case 5: printf(Friday\n); case 6: printf(Saturday\n); default: printf(Error); } } 程序运行情况如下: 3↙ Wednesday Thursday Friday Saturday error 将上面的例4-4修改如下: #include stdio.h void main() {int n; scanf(%d,n); switch(n) {case 0: printf(Sunday\n); break; case 1: printf(Monday\n); break; case 2: printf(Tuesday\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; default: printf(Error); } } 程序运行情况如下: 3↙ Wednesday 3、说明 多个case语句可以共用一组执行语句。 switch(grade) { case A: case B: case C:printf(grade=60\n);break; default:printf(grade60); } 各case和default子句的先后顺序可以变动,而不会影响程序执行结果。 default语句可以省略不用。 case和default与其后面的常量表达式间至少有一个空格。 switch语句可以嵌套,break语句只跳出它所在的switch语句。 嵌套switch 5级分制 5+ 5 5- 4+ 4 4- 3 2 1 百分制 100 90 85 80 75 70 60 60 60 将5级分制 转换成百分制输出。 Char c1,c2; Scanf(“%c%c”,c1,c2); Switch(c1) {case ‘5’: switch(c2) {case ‘+’: printf(“100); break; case ‘\n’:printf(“90”);break; case ‘-’: printf(“85”);break; }break; case ‘4’: default:printf(”error”) 1.main() {int x=1,y=0,a=0,b=0; switch(x) {case 1: switch(y) {case 0: a++;break; case 1:b++;break; } case 2: a++;b++;break; case 3:a++;b++; } printf(“a=%d,b=%d\n”,a,b); } 结果: a=
显示全部