3.3.3 if…else 语句嵌套
通过 if…else 语句可以实现二选一的流程执行情况,那么通过对 if…else 语句的嵌套使用,就可以让程序实现出多选一的流程执行情形。下面就用一个经典的“评分案例”来演示。
【 例 3-2 】要求由用户输入一个 0~100 的整数,以表示学生的考试分数,程序能够根据这个分数评定出相应的等级,共有 A、B、C、D 四个等级,其中 90 分及以上为优秀(用大写字母 A 表示),80~89 分为良好(用大写字母 B 表示),60~79 分为及格(用大写字母 C 表示),60 分以下为不及格(用大写字母 D 表示)。
代码如下:
在这个代码里,出现了 3 层的 if…else 语句嵌套,即在第一层 if…else 语句的 else 部分嵌套了第二层的 if…else 语句,在第二层的 else 部分又嵌套了第三层的 if…else 语句,如图 3.3 所示。
图 3.3 if…else 语句的三层嵌套
当程序运行时,首先会执行第一层 if…else 语句,判断其表达式的值,若为真则执行 if 部分的语句(打印输出 A),若为假则执行 else 部分,即执行第二层的 if…else 语句;接着判断第二层表达式的值,若为真则执行 if 部分(打印输出 B),若为假则执行 else 部分,即第三层的 if…else 语句;最后判断第三层表达式的值,若为真则执行 if 部分(打印输出 C),若为假则执行 else 部分(打印输出 D)。
例如我们在程序运行时,输入整数 70(即整型变量 score 的值为 70)。则程序的执行流程为:
① 判断出第一层表达式“score >= 90”的值为假,执行其 else 部分;
② 判断出第二层表达式“score >= 80”的值为假,执行其 else 部分;
③ 判断出第三层表达式“score >= 60”的值为真,执行其 if 部分;
④ 打印输出结果 C,程序执行完毕。
实际执行的情况如下:
Please enter a score between 0 and 100: 70 C
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论