上一节:
下一节:

  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
    
    尝试一下
  • if 修饰符

    语法
    
    code if condition
    
    如果condition为true,则执行code。
    示例:
    
    $debug = 1
    print "debug\n" if $debug
    
    尝试一下
  • 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
    
    尝试一下
上一节:
下一节: