Ruby if...else, case, unless
-
Ruby 判断,决策
Ruby提供了现代语言非常常见的条件结构。在这里,我们将解释Ruby中所有可用的条件语句和修饰符。 -
if ... else语句
语法if conditional [then] code... [elsif conditional [then] code...]... [else code...] end
if表达式用于条件执行。值false和nil为false,其他所有值为true。注意,Ruby使用的是elsif,而不是if和elif。如果条件为true,则执行代码。如果条件不为真,则执行else子句中指定的代码。if表达式的条件与代码由保留字then,换行符或分号分隔。示例:
尝试一下x = 1 if x > 2 puts "x 大于 2" elsif x <= 2 and x!=0 puts "x 是 1" else puts "我猜不到数字" end
-
-
unless 声明
语法unless conditional [then] code [else code ] end
如果conditional为false,则执行代码。如果条件为true,则执行else子句中指定的代码。示例:
尝试一下x = 1 unless x >= 2 puts "x 小于 2" else puts "x 大于等于 2" end
-
unless 修饰符
语法code unless conditional
如果conditional为假,则执行代码。示例:
尝试一下$var = 1 print "1 -- Value is set\n" if $var print "2 -- Value is set\n" unless $var $var = false print "3 -- Value is set\n" unless $var
-
case 声明
语法case expression [when expression [, expression ...] [then] code ]... [else code ] end
使用===运算符比较case指定的表达式和when指定的表达式,并执行匹配的when子句的代码。when子句指定的表达式被计算为左操作数。如果没有匹配when子句,case将执行else子句的代码。when语句的表达式与代码通过保留字then、换行符或分号分隔。因此−case expr0 when expr1, expr2 stmt1 when expr3, expr4 stmt2 else stmt3 end
基本上类似于以下内容-_tmp = expr0 if expr1 === _tmp || expr2 === _tmp stmt1 elsif expr3 === _tmp || expr4 === _tmp stmt2 else stmt3 end
示例:
尝试一下$age = 5 case $age when 0 .. 2 puts "baby" when 3 .. 6 puts "little child" when 7 .. 12 puts "child" when 13 .. 18 puts "youth" else puts "adult" end