其它的 Case 语法

case 语句有一种其它的形式,就像一系列 if..then..else 语句的简写形式。每个 when 部分都可以执行一些任意测试并执行一行或多行代码。case 变量不是必要的。每个 when 片段都会返回一个值,就像方法(method)一样,它是最后一段代码的结果。可以将此值分配给 case 语句之前的变量:

case4.rb
  1. salary = 2000000
  2. season = 'summer'
  3. happy = case
  4. when salary > 10000 && season == 'summer':
  5. puts( "Yes, I really am happy!" )
  6. 'Very happy' #=> This value is "returned"
  7. when salary > 500000 && season == 'spring' : 'Pretty happy'
  8. else puts( 'miserable' )
  9. end
  10. puts( happy ) #=> "Very happy"