C程序设计简明教程 王晓东 第4章 选择结构新.ppt
文本预览下载声明
if ~ else 配对原则:缺省{ }时,else总是和它上面离它最近的未配对的if配对 例4-7:假设用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 说明: E1,E2,…En是常量表达式,且值必须互不相同 语句标号作用,必须用break跳出 case后可包含多个可执行语句,且不必加{ } switch可嵌套 多个case可共用一组执行语句 如: …… case ‘A’: case ‘B’: case ‘C’: printf(“score60\n”); break; …….. 在“switch”语句中,“case 常量表达式”只相当于一个语句标号,表达式的值和某标号相等则转向该标号执行,但不能在执行完该标号的语句后自动跳出整个switch 语句,因此会继续执行所有后面语句的情况。 为此,C语言提供了一种break语句,其功能是可以跳出它所在的switch语句。 将上面的例4-7修改如下: #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 说明 多个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语句。 例 void 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(“\na=%d,b=%d”,a,b); } 运行结果:a=2,b=1 #include stdio.h main() { int c; printf(En
显示全部