多条件 if-else-if 语句

if 语句的主要功能是给程序提供一个分支。然而,有时候程序中仅仅多一个分支是远远不够的,甚至有时候程序的分支会很复杂,这就需要使用多分支的 if…else if 语句。

通常表现为“如果满足某种条件,就进行某种处理,否则如果满足另一种条件才执行另一种处理……,这些条件都不满足则执行最后一种条件”。

if…else if 多分支语句的语法格式如下所示:

 
  1. if(表达式1) {
  2. 语句块1;
  3. } else if(表达式2) {
  4. 语句块2;
  5. ...
  6. } else if(表达式n) {
  7. 语句块n;
  8. } else {
  9. 语句块n+1;
  10. }

可以看出,else-if 结构实际上是 if-else 结构的多层嵌套。明显的特点就是在多个分支中只执行一个语句组,而其他分支都不执行,所以这种结构可以用于有多种判断结果的分支中。

在使用 if…else if 语句时,依次判断表达式的值,当某个分支的条件表达式的值为 true 时,则执行该分支对应的语句块,然后跳到整个 if 语句之外继续执行程序。如果所有的表达式均为 false,则执行语句块 n+1,然后继续执行后续程序,其运行流程如图 3 所示。
 



图3  if…else if 语句的执行流程

例 5

同样以比较 num1 和 num2 的大小为例,使用 if…else if 多条件的实现代码如下:

 
  1. public static void main(String[] args) {
  2. int num1 = 50;
  3. int num2 = 34;
  4. if (num1 == num2) { // 如果num1等于num2
  5. System.out.println("num1等于num2");
  6. } else if (num1 > num2) { // 如果num1大于num2
  7. System.out.println("num1大于num2");
  8. } else { // 否则就是小于
  9. System.out.println("num1小于num2");
  10. }
  11. }

如上述代码所示,num1 和 num2 不满足 if 语句的“num1==num2”条件,接着测试 else if 的“num1>num2”条件,满足该条件并输出“num1 大于 num2”。

例 6

假设某学校对成绩的判断标准是:不低于 90,可以评为优秀;低于 90 但不低于 80,可以评为良好;低于 80 但不低于 60,可以评为中等;否则评为差。

 
  1. public static void main(String[] args) {
  2. System.out.println("请输入考试成绩:");
  3. Scanner input = new Scanner(System.in);
  4. int score = input.nextInt(); // 接收键盘输入数据
  5. if (score >= 90) { // 考试成绩>=90
  6. System.out.println("优秀");
  7. } else if (score >= 80) { // 90>考试成绩>=80
  8. System.out.println("良好");
  9. } else if (score >= 60) { // 80>考试成绩>=60
  10. System.out.println("中等");
  11. } else { // 考试成绩<60
  12. System.out.println("差");
  13. }
  14. }

当考试成绩为 90 分以上时,则执行第一个 if 语句,下面的 3 个条件判断语句不会执行;当考试成绩为 80 分以上 90 分以下时,则执行第一个 else if 语句;当考试成绩在 60~80 分,并且包含 60 分的成绩,则执行第二个 else if 语句;如果上述 3 个条件都不满足,则执行 else 语句。

程序运行后的输出效果如下所示:

请输入考试成绩:
100
优秀
请输入考试成绩:
88
良好
请输入考试成绩:
50
差

 

  • 2
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值