第4章选择结构的程序设计
* * 4)switch 语句组中可以省略default语句。 5)如果语句组是多条语句,可以不用花括号括起来,程序会自动顺序执行所匹配的case后面的所有语句。 注意的是,语句组也可以没有语句,如果没有,就顺序向下执行后面的case语句。 4.2 开关选择结构 * 【例4.11】 判别某考试成绩等级是否大于60分。 #include stdio.h void main() { char grade; printf(Input the grade:); scanf(%c,grade); switch(grade) { case A: case B: case C: printf(=60\n);break; case D: printf(60\n);break; default: printf(error\n); } } 各个case和default的出现次序可以任意,但必须作适当处理,否则将会影响执行结果。 switch(grade) { default: printf(error\n); break; case A: case B: case C: printf(60\n); break; case D: printf(60\n); break; } 4.2.2 switch语句的嵌套 如果在某个case后面的语句组中又包含了一个switch语句,则称这种结构为switch语句的嵌套结构。 4.2 开关选择结构 【例4.12】 switch语句嵌套结构举例。 #include stdio.h 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(a=%d,b=%d\n,a,b); } * * 【例 4.14】设计输入年、月,输出该月天数的程序。 分析: 每年的 1、3、5、7、8、10、12月,每月有31天。 4、6、9、11月,每月有30天。 2月闰年29天,平年28天。 4.3 选择结构程序设计举例 * * #includestdio.h void main() { int year,month,days; printf(input year,month=?\n); scanf(%d,%d,year,month); switch(month) { case 1: case 3: case 5: case 7: case 8: case 10: case 12:days=31;break; case 4: case 6: case 9: case 11:days=30; break; case 2: if((year%4==0) (year%100!=0)||(year%400==0)) days=29; else days=28; break; default:printf(month is error\n); } printf(year=%d,month=%d, days=%d\n,year,month,days); } 运行输入: input year,month=? 1994,8 运行结果: year=1994,month=8,days=31 再次运行输入: input year,month=? 1994,2 再次运行结果: year=1994,month=2,days=28 * * 小结 1.控制表达式的正确使用 (1)控制表达式并不局限于只是使用关系表达式或逻辑表达式。任何合法的C语言表达式都可以作为控制表达式,只要表达式的值为非零(即代表真),无论是正数还是负数,只要不为零就代表真。 (2)对于同一个控
原创力文档

文档评论(0)