当前位置: 首页 > news >正文

Java流程控制语句——条件控制语句详解(附有流程图)#Java条件控制语句有哪些?#if-else、switch

在 Java 编程中,条件控制语句用于控制程序的执行路径,决定根据某些条件来选择执行某段代码或跳过某段代码。它们是 Java 编程的重要组成部分,帮助开发者根据不同的输入、状态或数据流来编写更加灵活和动态的代码。在本文中,我们将详细讲解 Java 中的几种条件控制语句:if-elseelse-if switch,并通过示例帮助理解这些概念。

1. if-else语句

if-else 语句用于根据条件判断来选择不同的执行路径。当条件为真时,执行 if 代码块或者else if;当条件为假时,执行 else 代码块。

☑️if

格式:
if (关系表达式) {语句体;    
}
🔶执行流程:

①首先计算关系表达式的值

②如果关系表达式的值为true就执行语句体

③如果关系表达式的值为false就不执行语句体

④继续执行后面的语句内容

🏷️例子:
int age = 18;
if (age >= 18) {System.out.println("Adult");
}
if (age < 18) {System.out.println("Not an adult");
}
//输出结果为Adult
❗注意:
  • 如果我们要对一个布尔类型的变量进行判断,不要写==,直接把变量写在小括号中即可。

    boolean flag = true;
    if (flag) {System.out.println("判断为真");
    }
  • 如果大括号中的语句体只有一条,那么大括号可以省略不写。如果大括号省略了,那么if或者else只能控制距离他最近的那一条语句。但是建议还是加上大括号,代码可读性更强

    int a = 1;
    //如果大括号中的语句体只有一条,那么大括号可以省略不写
    if (a == 1) System.out.println("1");
    //但是还是建议加上大括号
    if (a == 1) {System.out.println("1");
    }

☑️if-else

格式:
if (关系表达式) {语句体1;   
} else {语句体2;   
}
🔶执行流程:

①首先计算关系表达式的值

②如果关系表达式的值为true就执行语句体1

③如果关系表达式的值为false就执行语句体2

④继续执行后面的语句内容

🏷️例子:
int age = 18;
if (age >= 18) {System.out.println("Adult");
} else {System.out.println("Not an adult");
}
//输出结果为Adult

☑️else if

格式:
if (关系表达式1) {语句体1;   
} else if (关系表达式2) {语句体2;   
} else if (关系表达式3) {语句体3;   
} 
…
else {语句体n+1;
}
🔶执行流程:

①首先计算关系表达式1的值

②如果值为true就执行语句体1;如果值为false就计算关系表达式2的值

③如果值为true就执行语句体2;如果值为false就计算关系表达式3的值

④…

⑤如果没有任何关系表达式为true,就执行语句体n+1。

🏷️例子:
int score = 75;
if (score >= 90) {System.out.println("A");
} else if (score >= 80) {System.out.println("B");
} else if (score >= 70) {System.out.println("C");
} else {System.out.println("F");
}
❗注意:

末尾的else如果不需要可以省略不写。

☑️使用场景

  • 当需要基于一个或多个逻辑条件来执行不同的代码路径时使用。

  • 通常用于处理简单的逻辑分支,如分数等级评定。

2. switch-case语句

🔶执行流程:

  • 首先计算出表达式的值

  • 其次,和case依次比较,一旦有对应的值,就会执行相应的语句,在执行的过程中,遇到break就会结 束。

  • 最后,如果所有的case都和表达式的值不匹配,就会执行default语句体部分,然后程序结束掉。

☑️传统格式:

switch (表达式) {case 值1:// 如果表达式的值等于值1,执行这里的代码break;case 值2:// 如果表达式的值等于值2,执行这里的代码break;default:// 如果没有匹配的case,执行这里的代码
}
🔶流程图:
开始
↓
获取表达式值
↓
判断是否等于值1
| 是 -> 执行代码块1
| 否 -> 判断是否等于值2
|    是 -> 执行代码块2
|    否 -> ... -> 执行默认代码块
↓
结束
🏷️示例:
int day = 2;
switch (day) {case 1:System.out.println("Monday");break;case 2:System.out.println("Tuesday");break;default:System.out.println("Invalid day");
}

☑️新型格式(Java 14及以上版本):

var result = switch (表达式) {case 值1 -> "值1的处理结果";case 值2 -> "值2的处理结果";// 更多case...default -> "默认处理结果";
};
🔶流程图:
开始
↓
获取表达式值
↓
匹配case值
| 匹配成功 -> 执行对应代码块
| 匹配失败 -> 执行默认代码块
↓
结束
🏷️示例:
String dayOfWeek = "Wednesday";
var dayResult = switch (dayOfWeek) {case "Monday" -> "今天是周一";case "Tuesday" -> "今天是周二";case "Wednesday" -> "今天是周三";default -> "不是这三天中的一天";
};
System.out.println(dayResult);

☑️使用场景

  • 当需要根据变量的不同取值来选择不同的执行路径时使用。

  • 特别适用于处理byte、short、int、char、枚举、String类型或预定义的几个可能值。

  • 有限值需要任选其一的情况用switch可以让语句更简洁可读。

  • case后面的值只能是字面量不能是变量

🔶switchelse if使用场景的区别
  • 当我们需要对一个范围进行判断的时候,用else if
  • 当我们把有限个数据列举出来,选择其中一个执行的时候,用switch语句

简单记忆:记住switch语句使用场景,其他都考虑else if

❗注意:

default可以放在任意位置,也可以省略

但是都不建议:

  • default放在其他位置会导致代码混乱,可读性差;
  • 省略会导致没有匹配上结果就会结束

不写break会引发case穿透现象

switch (week){case 1:case 2:case 3:case 4:case 5:System.out.println("工作日");break;case 6:case 7:System.out.println("休息日");break;default:System.out.println("没有这个星期");break;
}

3. 表格总结

语句用法适用场景
if-else用于判断一个布尔表达式并根据条件执行代码块用于范围判断、逻辑复杂的多条件分支
else-if用于多层判断,从上到下依次检查条件是否成立需要处理多条件且逻辑稍微复杂的场景
switch基于一个表达式的值,执行匹配的 case 代码块用于处理有限个具体值的比较,如整型、字符型

4. 结论

在 Java 中,条件控制语句是编写动态程序的基础,能够帮助开发者根据输入或状态做出决策。if-elseelse-if 语句提供了灵活的多条件判断,而 switch 语句则在处理有限个具体值的情况下更加简洁。通过合理选择和使用这些条件控制语句,可以使代码更加高效、清晰,并且容易维护。


http://www.mrgr.cn/news/31352.html

相关文章:

  • 消息中间件都有哪些
  • 栈的各种接口的实现(C)
  • 《史上最简单的 SpringCloud 教程》
  • k8s自动清理pod脚本分享
  • 认识自动化测试
  • 数据结构之二叉树(1)
  • Shader 中的光源
  • 排序-----选择排序
  • 机器人上的DPDK使用思考
  • 对商品分类系统的若干问题的思考
  • Go语言基础学习01
  • OpenHarmony(鸿蒙南向开发)——小型系统内核(LiteOS-A)【扩展组件】上
  • C#开发记录如何建立虚拟串口,进行串口通信,以及通信模板
  • DOS(Disk Operating System,磁盘操作系统)常用指令
  • Java知识点小结3:内存回收
  • C++自动寻径算法
  • 网关登录校验(2)----网关如何将用户信息传递给微服务
  • Django+React+Neo4j实现的地质领域知识图谱系统
  • DNS解析流程
  • pandas入门