分支

分支语句 属于 Ruby

22 个练习

关于 分支语句

Ruby 中有所谓的流程控制表达式,它们用来控制程序的运行方式,并且会接受一个真值或假值。 有些运算符可以用来产生真值或假值,它们被称为比较运算符。

主要有两种控制表达式,用来决定哪些代码会运行、哪些不会运行,也就是决定会执行哪个分支。

这两种分别是:if 表达式和 unless 表达式。

比较运算符

比较运算符用于比较值,并返回 true 或 false。 下面这些运算符要求被比较的两个值类型相同。 如果两个值的类型不同,编译器就会抛出错误。 下面是这些运算符的列表,以及它们给出 true 时的示例:

方法 描述 示例
< 小于 4 < 5
<= 小于或等于 4 <= 4
> 大于 3 > 1
>= 大于或等于 2 >= 2

与前面提到的运算符不同,相等和不等运算符可以用来比较任何类型的值。 == 运算符用来检查两个值是否相等,这也包括检查值的类型。 != 的工作方式相同,但如果两个值不相等它会返回 true,相等则返回 false。 下面是相等和不等运算符的列表,以及它们给出 true 时的示例:

方法 描述 示例
== 等于 4 == 4
!= 不等于 5 != 4

组合比较运算符

组合比较运算符(有时称为飞船运算符)是一种特殊的比较运算符。 它的特殊之处在于,它返回的不是真值或假值,而是一个数字。 它写作 <=>,用来比较两个值。 如果左边的值大于右边的值,它会返回 1;如果左边的值小于右边的值,返回 -1;如果两个值相等,返回 0。

1 <=> 2 # => -1
2 <=> 2 # => 0
3 <=> 2 # => 1

if 语句

if 语句用来检查给定条件是“真值”还是“假值”。 如果条件为真,if 语句内部的代码就会运行。 if 语句以 end 关键字结尾。

value = 1
if value == 1
  "1 is equal to 1"
end
# => "1 is equal to 1"

if value > 2
  "1 is greater than 2"
end
# => nil

unless 语句

unless 语句的工作方式与 if 语句非常相似,但它会在条件为假时运行 unless 语句内部的代码。

value = 1
unless value == 1
  "1 is not equal to 1"
end
# => nil

unless value > 2
  "1 is not greater than 2"
end
# => "1 is not greater than 2"

else 语句

else 语句可以和 if 语句一起使用。 如果 if 分支没有执行,就会执行 else 语句。

value = 1
if value == 1
  "1 is equal to 1"
else
  "1 is not equal to 1"
end
# => "1 is equal to 1"

if value > 2
  "1 is greater than 2"
else
  "1 is not greater than 2"
end
# => "1 is not greater than 2"

“级联式 if” 语句

elsif 语句可以和 if 语句一起使用。 如果 if 分支没有执行,并且 elsif 语句的条件为真,就会执行 elsif 语句。 elsif 语句可以串联起来,第一个为真的条件会被执行。 if 语句末尾也可以加上一个 else 语句,如果前面所有语句的条件都不为真,它就会运行。

value = 1
if value == 0
  "1 is equal to 0"
elsif value > 2
  "1 is greater than 2"
else
  "1 is not equal to 0 and 1 is not greater than 2"
end
# => "1 is not equal to 0 and 1 is not greater than 2"

if 和 unless 用作后缀

if 和 unless 语句也可以用作[后缀][if-as-suffix],当你想在条件为真时运行单行代码时,这很有用。 做法是把 if 或 unless 语句放在你想运行的代码后面。

value = 1
"1 is equal to 1" if value == 1
# => 1 is equal to 1

"1 is not equal to 1" unless value == 1
# => nil
通过 GitHub 编辑 该链接会在新窗口或标签页中打开

学习 分支语句

练习已锁定

再解锁 10 个练习即可练习 分支语句