03. Java 的流程控制

三种基本结构

顺序结构、循环结构和选择结构是程序设计中常见的三种基本结构,它们共同构建了程序的执行流程:

  1. 顺序结构:就像一条直线,代码按照从上到下的顺序依次执行,一个步骤接着一个步骤。这种结构简单直接,适用于执行一系列连续的操作。
  2. 选择/分支结构:它就像是一个岔路口,根据不同的条件来决定走哪条路。通过选择结构,我们可以根据不同的情况执行不同的代码块,实现灵活的决策和分支处理。
  3. 循环结构:就像一个循环的圈圈,它让代码在满足特定条件的情况下,重复执行一段代码。循环结构可以帮助我们处理大量相似或重复的任务,节省代码量并提高效率。

这三种结构相互结合,使得程序能够根据不同的情况和需求进行灵活的控制和执行。它们是编程的基础,帮助开发者构建出各种功能和逻辑复杂的程序。

顺序结构详解

顺序结构是指按照代码的自然顺序依次执行语句,一个语句执行完后接着执行下一个语句。

选择/分支结构详解

选择结构根据特定的条件来决定执行哪部分代码,可以使用 if-else 语句、switch 语句等。

if 条件语句详解

if 型
if (条件) {
  语句体...
}

if (条件)
{
  语句体...
}

// 如果条件体只有一句话,大括号可以省略但不建议这么做。
if (条件) 单条语句;

if (条件)
    单条语句;

这四种写法推荐使用第 1 种,节省行数且结构清晰。

if else 型
if (条件) {
  语句体1...
} else {
  // 若不满足条件
  语句体2...
}
else if 型

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

if (条件1) {
  语句体1...
} else if (条件2) {
  语句体2...
} else if (条件3) {
  语句体3...
} else {
  兜底语句体...
}
if 嵌套组合

if 语句可以任意嵌套。但一般情况下,嵌套层数不建议超过 3 层。

if (条件1) {
  if (条件2) {
    语句体1...
  } else {
    语句体2...
  }
} else {
  语句体3...
}

switch 语句

根据表达式的值执行不同的代码块。

其中 expression 必须为 byte, short, int, char, JDK 1.5 新增 enum 枚举, JDK 1.7 新增 String 类型

case 0: case 1: // 实现了多个 case 对应一种情况
  ...
  break;
case 2: {
  // 在 case 语句块中加一对花括号也是可以的
  ...
  break;
}
case 3: // 花括号可以省略
  ...
  break;
default: // default 可选。花括号也是可选的。建议所有的 switch 都加上 default 子句的情况,且 default 子句建议写在最后。
  ...
  break;

注意:

  • 一般每个 case 语句后都会加 break 不要忘记,除非有特殊用途

循环结构

循环结构则允许代码在满足一定条件的情况下重复执行一段代码,例如 for 循环、while 循环和 do-while 循环等。

循环语句

while
// while
while (循环条件) {
    语句组
}
do while
// do while
do {
    语句体
} while (循环条件);

注意:do while 循环和 while 循环的区别在于,do while 循环至少会执行一次,而 while 循环则需要满足循环条件才能执行。

for 循环

for 语句是应用最广泛、功能最强的一种循环语句,用于指导固定次数的循环。

for (初始化; 循环条件; 迭代) {
    语句体
}

提示 初始化、循环条件以及迭代部分都可以为空语句(但分号不能省略),三者均为空的时候,相当于一个无限循环。代码如下:

// 使用 for, 写的无限循环
for (; ;) {
    ...
}

// 或者这么搞
while (true) {
    ...
}
for-each 语句

Java 5 之后推出 foreach 循环语句,使用 for-each 循环不必按照 for 的标准套路编写代码,它是专门为集合和数组的遍历而设计的,注意 foreach 并不是一个关键字。

跳转语句

break、continue、return 和 throw 语句是 Java 语言中常用的跳转语句,本节重点介绍 break 和 continue 语句的使用。

break 语句

break 语句:用于跳出循环或 switch 语句。

在循环体中使用 break 语句有两种方式:带有标签和不带标签。语法格式如下:

break;           // 不带标签
break label;     // 带标签,label 是标签名,例如 label: for 循环
continue 语句

continue 语句:用于跳过当前循环的一次迭代,继续下一次迭代。

在循环体中使用 continue 语句有两种方式可以带有标签,也可以不带标签。语法格式如下:

continue;          // 不带标签
continue label;    // 带标签,label 是标签名,例如 label: while 循环

break 添加标签的意义,添加标签对于多层嵌套循环是很有必要的,适当使用可以提高程序的执行效率。但不建议过多使用,否则程序可读性差,而且容易出错。

break 和 continue 关键字比较
  • break 既用在循环语句中,也可用在条件选择语句中的 switch 语句
  • contine 只用在循环语句中,作用是结束本次循环,接着继续进行条件判断

加餐

表达式与语句

表达式:是用于计算值的代码片段。它可以由变量、常量、运算符和其他表达式组合而成。表达式的目的是求值,并返回一个结果。例如:2 + 3x * ya > b 等都是表达式。

语句:是可执行的代码单元,它可以完成特定的操作。语句不一定返回值,它们的主要目的是改变程序的状态或执行其他相关的操作。例如:if 语句、for 循环、print 语句等都是语句。

表达式通常用于计算、赋值、比较等操作,而语句则用于控制程序的流程、执行特定的功能。在 Java 中,表达式可以出现在语句中,作为语句的一部分。

死循环

循环体内部必须通过语句更改循环变量的值,否则将会发生死循环。

// 死循环写法一
for (;;)

// 死循环写法二
while (true) {}

参考

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值