Ruby case语句

Ruby case语句教程

Ruby 中,case 先对一个 expression 进行匹配判断,然后根据匹配结果进行分支选择。它使用 === 运算符比较 when 指定的 expression,若一致的话就执行 when 部分的内容。

通常我们省略保留字 then。 若想在一行内写出完整的 when 式,则必须以 then 隔开条件式和程式区块。case 语句其实类似于其他语句的 switch case 语句。

Ruby case语句详解

语法

case expression [when expression [, expression ...] [then] code ]... [else code ] end

说明

通常我们省略保留字 then 。若想在一行内写出完整的 when 式,则必须以 then 隔开条件式和程式区块。如下所示:

when a == 4 then a = 7 end

因此:

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

案例

case语句使用

case 语句的使用

#!/usr/bin/ruby -w # -*- coding : utf-8 -*- puts "HaiCoder(www.haicoder.net)" $age = 5 case $age when 0 .. 2 puts "婴儿" when 3 .. 6 puts "小孩" when 7 .. 12 puts "child" when 13 .. 18 puts "少年" else puts "其他年龄段的" end

程序运行后,控制台输出如下:

15_ruby case语句.png

case 语句其实类似于其他语句的 switch case 语句。

case语句使用

case 语句的使用

#!/usr/bin/ruby -w # -*- coding : utf-8 -*- puts "HaiCoder(www.haicoder.net)" foo = false bar = true quu = false case when foo then puts 'foo is true' when bar then puts 'bar is true' when quu then puts 'quu is true' end

程序运行后,控制台输出如下:

16_ruby case语句.png

当 case 的表达式部分被省略时,将计算第一个 when 条件部分为真的表达式。

Ruby case语句总结

在 Ruby 中,case 先对一个 expression 进行匹配判断,然后根据匹配结果进行分支选择。它使用 === 运算符比较 when 指定的 expression,若一致的话就执行 when 部分的内容。