内容正文:
任务3 选择语句的应用
1.了解C51程序中选择结构的构建。
2.了解if、switch/case语句的功能。
3.能够完成学生成绩等级划分程序的设计与调试。
将某校学生成绩划分为A、B、C、D、E五个等级,见下表。同时,要求根据不同的分数打印出其相应等级。
数据范围(成绩) 等级
>100 error
90~100 A
80~89 B
70~79 C
60~69 D
<60 E
一、条件语句 if
1.if (条件表达式) 语句
当条件表达式的结果为真时,就执行语句,否则就跳过。
[例]: if (a==b) a++; // 当a等于b时,a 就加 1
2.if (条件表达式) 语句1
else 语句2
当条件表达式成立时,就执行语句 1,否则就执行语句 2 。
[例]: if (a==b)
a++; //当 a等于b时, a 加1
else
a - -; //当 a不等于b时,a 减1
3.if (条件表达式1) 语句 1
else if (条件表达式 2) 语句 2
else if (条件表达式 3) 语句 3
else if (条件表达式 m) 语句 m
else 语句n
条件语句常用来实现多方向条件分支。使用时if 和else要配对使用,且else总是与最临近的 if 相配对,要是少了一个就会出现语法错误。
二、开关语句 switch/case
switch (表达式)
{
case 常量表达式 1: 语句1; //如果常量表达式1满足,则执行语句1
break; //执行完语句1后,使用break跳出switch
//结构
case 常量表达式 2: 语句2;
break;
┋
case 常量表达式 n: 语句n;
break; //如果常量表达式n满足,则执行语句n后并跳出
default: 语句n+1; //默认情况下(以上条件都不满足时),
//执行语句(n+1)
}
case后常量表达式的值必须是整型或字符型,且互不相同。每个case语句后面可以有“break”,也可以没有。有break语句,执行到break则退出switch结构;没有break语句,则会导致其后多条case语句连续执行,直到遇到break结束。
开关语句也是一种用来实现多方向条件分支的语句。虽然采用条件语句也可以实现多方向条件分支,但当分支较多时会使条件语句的嵌套层次过多,程序冗长,可读性降低。开关语句能直接处理多分支选择,使程序结构清晰、使用方便。
一、程序设计
本任务使用条件语句if来完成相关成绩数据的判定。
if(score>100) grade=’e’; // 错误(error)
else if(score>=90) grade=’A’; // 等级为 A
else if(score>=80) grade=’B’; // 等级为 B
else if(score>=70) grade=’C’; // 等级为 C
else if(score>=60) grade=’D’; // 等级为 D
else grade=’E’; // 等级为 E
对于不同成绩的等级划分