内容正文:
项目五 复杂分支程序设计──字符菜单
学习目标
了解使用if语句实现多分支的方法。
掌握使用switch语句完成多分支的方法。
了解break语句的使用方法。
项目五
复杂分支程序设计──字符菜单
项目一到项目三主要使用顺序结构形式进行设计,即所有语句按照在源程序中的先后顺序逐条语句执行。项目四介绍了选择结构中的单分支和双分支的设计方法。而本项目将介绍如何利用更复杂的多分支和分支嵌套更灵活的控制程序流程。
本项目将介绍C语言中多分支选择结构的设计方法,并以一个带有字符菜单的简单程序编写过程为例进行说明。
项目五
复杂分支程序设计──字符菜单
任务一 复习选择结构
任务二 了解switch-case语句
任务三 菜单的显示
任务四 接受用户的选择
任务五 根据用户选择执行不同操作
任务六 菜单的再次显示
任务一 复习选择结构
多分支的if-else语句格式:
if (条件1) 语句1;
else if (条件2) 语句2;
else if (条件3) 语句3;
……
else 语句n;
执行该语句时,顺次判断各条件,一旦满足某一个条件n,就接着执行对应的语句n。并且不再执行其他判断,直接退出整个if-else语句。
if(score>=0&&score<60)
printf("Fail
"); /*不及格*/
else if(score<70)
printf("Pass
"); /*及格*/
else if(score<80)
printf("Satisfactory
"); /*中等*/
else if(score<90)
printf("Good
"); /*良好*/
else if(score<=100)
printf("Excellent
"); /*优秀*/
else printf("Invalid!
"); /*无效成绩*/
任务二 了解switch-case语句
switch语句的语法格式:
switch (整型表达式)
{
case 常量表达式1: 语句序列1 ;
case 常量表达式2: 语句序列2 ;
……
case 常量表达式n: 语句序列n ;
default: 语句序列n+1 ;
}
例子
switch(s)
{
case 1: a++; b--; break;
case 2: a+=3;break;
case 3:a+=5;break;
default: a*=2;
}
注意
(1) switch后面括号“()”中的表达式必须是整型表达式,即它的值必须是int,char这样的整数类型。并且switch后面的括号“()”不能省略,也不能使用空表达式。
(2) case语句后面的常量表达式也必须是整数类型,而且不能是变量
(3) case语句起着分支判断作用,所以case后面的值必须互不相同。
(4) “case表达式:”后面可以是多条语句,不用加大括号“{}”。但是switch语句的整体要用大括号“{}”括起来。
注意
(5) 当switch括号中表达式的值与任意一个case表达式的值都不匹配时,就执行default语句。switch语句中也可以没有default语句。
(6) 当根据switch表达式的值选择匹配的分支后,将顺序执行分支的语句序列,直到执行到break语句时结束,并退出switch语句。所以如果没有break语句,就会继续执行下一个分支的操作。
(7) 各个case语句和default语句的出现顺序可以任意。写在最后面的分支语句(包括default语句)可以不加break语句。
(8) 选择一条分支语句(包括default语句)并执行结束后(遇到break语句或者遇到switch的右大括号“}”),switch语句也就结束了。
例子:
将分数score转换为等级
将score/10作为switch分支表达式
switch((int)(score/10))
{
case 10: if(score!=100)
{
print