Java 的流程控制是什么样子的

Java 的流程控制是什么样子的

💡 原文中文,约5900字,阅读约需14分钟。
📝

内容提要

本文介绍Java流程控制。程序遵循输入-处理-输出模式:用Scanner读取输入,System.out输出。三种基本结构:顺序结构按行执行;选择结构含if单选择、双选择、多选择、嵌套及switch;循环结构含while、do while、for、for each,并可用break跳出当前层循环、continue跳过当次循环。

🔎

延伸解读

输入处理:nextLine 与 next 的差异

文章通过示例指出,Scanner 的 nextLine() 会读取整行并保留字符串中的空格,而 next() 遇到空白符即停止,且会忽略前导空白。nextInt() 基于 next() 进行类型转换,因此行为与 next() 类似。这意味着读取含空格的字符串时应使用 nextLine(),而读取单个单词或数字时可用 next() 或 nextInt()。

switch 的穿透与合并技巧

文章说明 switch 中若某个 case 缺少 break,程序会继续执行下一个 case 的代码,称为穿透。利用这一特性,可以将逻辑相同的多个 case 合并,例如让键入 4 与键入 3 效果一致。但需注意,JavaSE 8 中 switch 支持的变量类型限于 byte、short、int、char、String 和枚举。

循环选择:for、while 与 do while 的适用场景

文章对比了三种循环:while 先判断后执行,可能一次都不执行;do while 先执行后判断,至少执行一次;for 则适合已知初始值、终止条件和计数器的迭代场景。for each 简化了数组或迭代器的遍历,但不体现计数器,也无法指定顺序或获取索引。

break 与 continue 的作用范围

文章强调,break 用于完全终止当前层循环,若循环嵌套,它只跳出当前层,不影响外层;continue 则跳过当次循环的剩余代码,直接进入下一次循环。两者通常需配合 if 条件使用,以避免无条件中断。

❓

Q&A

Java 中如何接收用户的键盘输入?

Java 使用 Scanner 工具类接收输入。基本语法是 new Scanner(System.in),其中 System.in 是标准输入流。常用方法有:nextLine() 读取一行字符串(保留空格),next() 读取字符串(忽略前后空格),nextInt() 读取整数,其他基本类型同理。使用前需要 import java.util.Scanner;。

Java 的 if 选择结构有哪几种形式?

Java 的 if 选择结构有四种:1. if 单选择结构,只处理条件成立的情况;2. if 双选择结构,用 if-else 处理两种分支;3. if 多选择结构,用 if-else if-else 处理多个条件;4. if 嵌套选择结构,在 if 内部再嵌套 if,用于条件中还有子条件的情况。

Java 中 switch 语句支持哪些数据类型?

JavaSE 8 中,switch 选择结构支持的变量类型有 byte、short、int、char、String 和 ENUM。switch 适用于判断一个变量与一系列值是否相等的场景,命中不同值执行不同逻辑。

Java 的 while 和 do while 循环有什么区别?

while 循环是先判断后执行,只要布尔表达式为 true 就执行循环体,不满足条件则一次都不执行。do while 循环是先执行后判断,循环体至少执行一次,然后再检查条件决定是否继续。

Java 中 break 和 continue 在循环里有什么不同?

break 用于直接退出整个当前层循环结构,中断后循环不再执行;continue 用于跳过当次循环的剩余代码,进入下一次循环。两者通常都要配合 if 条件使用。注意:如果循环有嵌套,break 只退出当前层循环,不会退出外层循环。

Java 的 for each 循环有什么特点和限制?

for each 循环用于简化对数组或迭代器对象的遍历,语法简单,不需要关心索引。但它不体现计数器的初始化和更新,因此无法指定遍历顺序,也不能获取数组或迭代器的索引。

🏷️

标签

➡️

继续阅读