什么是条件语句?
了解 Ruby 中的条件语句。
什么是条件语句?
有时,我们只希望在满足特定条件时才执行某个操作。有时,我们可能需要检查某个条件,然后根据结果执行不同的操作:如果条件为真,则执行某件事;否则,执行另一件事。
所有实用的编程语言都有表达这种逻辑的方式,在 Ruby 中,它的写法如下:
1number = 5 2 3if number.between?(1, 10) 4 puts "The number is between 1 and 10" 5elsif number.between?(11, 20) 6 puts "The number is between 11 and 20" 7else 8 puts "The number is bigger than 20" 9end
这段代码的作用和运行机制应该一目了然。
详解
我们逐步来分析这段代码:
-
运行这段代码会输出
The number is between 1 and 10,因为第一行赋值给number变量的数值是5。对于这个数值,方法调用number.between?(1, 10)返回true。 -
Ruby 执行
if分支中的代码。if分支是指if关键字所在行之后、缩进的部分(本例中为两个空格缩进)。一旦执行完该分支,Ruby 就不再处理后续内容。 -
如果我们将第一行的数字
5改为15并重新运行代码,输出将是The number is between 11 and 20。此时,Ruby 先检查第一个条件number.between?(1, 10),返回false。 -
因此,Ruby 跳过
if分支,转而检查elsif行的条件number.between?(11, 20)。由于15确实在11到20之间,该方法调用返回true,Ruby 执行elsif分支并输出对应信息。执行完毕后,Ruby 同样忽略后续内容。 -
如果现在将数字从
15改为25并再次运行代码,输出将是The number is bigger than 20。Ruby 首先检查第一个条件,返回false;接着检查第二个条件,也返回false。于是 Ruby 执行else分支,并输出该消息。
elsif 和 else 分支
elsif 和 else 分支是可选的。我们可以有以下几种情况:
- 仅包含
if分支的条件语句; - 包含
if和else分支的条件语句; - 包含
if和一个或多个elsif分支(但没有else分支)的条件语句; - 也可以同时使用
if、elsif和else分支。
但必须遵守以下规则:
- 必须有一个
if分支; - 可以有多个
elsif分支; - 可以有一个
else分支,且它必须是最后一个分支,紧接在end关键字之前。