32. Java 控制流语句 If-Then 语句

182 阅读2分钟

32. Java 控制流语句 If-Then 语句

If-Then 语句 🛑

if-then 语句是最基本的控制流语句之一,常用于在特定条件为真时执行某段代码。如果条件计算结果为 true,则执行 then 语句,否则跳过。它是实现条件判断和分支执行的核心工具。


示例:应用制动器的 if-then 语句 🚲

假设我们要控制自行车的制动器,只有在自行车处于运动状态时才允许减速。以下是 applyBrakes() 方法的一种实现方式:

void applyBrakes() {
    // the "if" clause: bicycle must be moving
    if (isMoving) {
        // the "then" clause: decrease current speed
        currentSpeed--;
    }
}

🔍 解释

  • if 子句:检查 isMoving 变量,只有在自行车正在移动时(即 isMovingtrue),才会进入 then 子句执行减速操作。
  • then 子句:通过 currentSpeed-- 降低自行车的速度。

如果 isMovingfalse(即自行车没有在运动),则跳过 then 子句,直接跳到 if-then 语句的末尾。


简化的版本(省略大括号) ✂️

if-then 语句中,如果 then 子句仅包含一个语句,则大括号是可选的。以下是省略大括号后的代码版本:

void applyBrakes() {
    // same as above, but without braces
    if (isMoving)
        currentSpeed--;
}

在这个简化的版本中,我们省略了 {},只保留了一个语句。虽然这样可以减少代码量,但这种方式会使得代码变得更加脆弱。举个例子,如果后来我们需要在 if 语句中执行多个操作,忘记加上大括号可能导致逻辑错误。

省略大括号的潜在问题 ⚠️

假设我们后来想在 if 语句中增加第二个操作:

void applyBrakes() {
    if (isMoving)
        currentSpeed--;
        applyBrakeLights();  // 新的操作
}

在这里,applyBrakeLights() 将会在 if 语句外部执行,因为缺少大括号,导致只有 currentSpeed-- 被正确包含在 if 语句中,而 applyBrakeLights() 无论 isMoving 是否为 true 都会执行。

这种潜在的错误在编译时无法被捕获,结果可能是程序不按预期工作。


总结

  • if-then 语句用来在特定条件为 true 时执行某些操作。
  • 大括号 {}if 语句中的使用可以增强代码的可读性和可维护性,避免逻辑错误。
  • 如果 if 子句中只包含一个语句,可以省略大括号,但这种做法可能导致错误,特别是在后期修改代码时。

尽管省略大括号可以让代码显得简洁,但在多数情况下,使用大括号可以提高代码的清晰度和可靠性!🛠️