if...else 语句是 Scala 中用于条件判断的基本控制结构。它允许根据某个条件表达式的布尔值(truefalse)来执行不同的代码块。Scala 的 if 语句非常灵活,不仅可以用作语句,还可以作为表达式(即返回一个值)。


📖 目录

  1. 基本的 if...else 语句
  2. if 语句作为表达式
  3. if...else if...else 语句
  4. 嵌套的 if 语句
  5. if 语句的返回值
  6. 参考资料

1. 基本的 if...else 语句

基本的 if...else 语句有一个条件表达式和两个代码块:一个在条件为 true 时执行,另一个在条件为 false 时执行。

语法:

if (condition) {
  // 条件为 true 时执行的代码块
} else {
  // 条件为 false 时执行的代码块
}

示例:

val age = 20

if (age >= 18) {
  println("You are an adult.")
} else {
  println("You are a minor.")
}

输出:

You are an adult.

在上面的示例中,if 语句根据 age 的值来决定输出的内容。如果 age >= 18true,打印 “You are an adult.”;否则打印 “You are a minor.”


2. if 语句作为表达式

在 Scala 中,if 语句不仅可以用作控制流,还可以作为一个表达式返回一个值。if 语句的结果值取决于条件是否为 truefalse

示例:

val age = 20
val result = if (age >= 18) "Adult" else "Minor"
println(result)  // 输出:Adult

在这个例子中,if 语句返回一个值 AdultMinor,并将其赋值给变量 result。这使得 if 语句不仅仅是一个语句,还能像其他表达式一样返回值。


3. if...else if...else 语句

当有多个条件需要判断时,可以使用多个 else if 来处理不同的条件。else if 用于检查多个条件,只有第一个为 true 的条件分支会被执行。

语法:

if (condition1) {
  // 条件1为 true 时执行的代码块
} else if (condition2) {
  // 条件2为 true 时执行的代码块
} else {
  // 所有条件都为 false 时执行的代码块
}

示例:

val score = 85

if (score >= 90) {
  println("Grade: A")
} else if (score >= 75) {
  println("Grade: B")
} else if (score >= 60) {
  println("Grade: C")
} else {
  println("Grade: D")
}

输出:

Grade: B

在这个例子中,程序会依次检查 score 是否大于或等于 90,75,60。如果都不满足条件,则执行 else 代码块。


4. 嵌套的 if 语句

if 语句可以嵌套在另一个 if 语句内部。这对于更复杂的条件判断非常有用。

示例:

val age = 20
val hasID = true

if (age >= 18) {
  if (hasID) {
    println("You are allowed to enter.")
  } else {
    println("You need an ID to enter.")
  }
} else {
  println("You are too young to enter.")
}

输出:

You are allowed to enter.

在这个例子中,首先判断 age 是否大于等于 18。如果是,再判断 hasID 是否为 true,根据不同的条件输出不同的信息。


5. if 语句的返回值

正如前面提到的,if 语句不仅能控制代码的执行流,还可以返回值。此特性使得 if 语句与其他表达式一样,可以作为函数的返回值或其他表达式的组成部分。

示例:

def max(a: Int, b: Int): Int = {
  if (a > b) a else b
}

println(max(10, 20))  // 输出:20

在这个示例中,if 语句根据 ab 的大小返回较大的值作为函数的结果。


6. 参考资料


Scala 的 if...else 语句使得条件判断变得简洁和易于理解。通过将 if 语句作为表达式,可以使代码更简洁并提升其可读性。