Ruby 中的 case 语句非常强大,首先我们来看一个基本用法:
grade = case
when point >= 85: 'A'
when point >= 70 && point < 80: 'B'
when point >= 60 && point < 70: 'C'
when point < 60: 'D'
else 'E'
end
这里 case 语句的作用和 if 表达式类似, case 语句的返回值就是最后一个执行的表达式的值。和 if 语句类似,如果写在同一行的话需要加 then 或冒号。
另一种也是最常用的形式是在 case 后列出目标,然后每个语句依次和目标比较:
case input_line
when "debug"
print "We are in debug mode."
when /p\s+(\w+)/
dump_variable($1)
when "quit", "exit"
exit
else
print "Illegal command: #{input_line}"
end
另一个例子:
Season = case month
when 3..5 : "Spring"
when 6..8 : "Summer"
when 9..11: "Autumn"
when 12..2: "Winter"
else "Error"
end
Ruby 提供了一个运算符 === ,只要一个类提供了 === 方法,那这个类的对象就可以出现在 case 语句中。例如对于正则表达式定义了 === 为模式匹配。
Ruby 中,所有类的基类是 Class 类,所有类实例都是 Class 类的实例( to-do )。它定义 === 的含义为为参数所提供是否为实例的类或父类。
case shape
when Square, Rectangle
# ...
when Circle
# ...
when Triangle
# ...
else
# ...
end
分享到:
相关推荐
Ruby的case表达式有两种形式: 第一种形式接近于一组连续的if语句:它让你列出一组条件,并执行第一个为真的条件表达式所对应的语句。 第二种形式,在case语句的顶部指定一个目标,而每个when从句列出一个或者多个...
这个"Ruby基础语法视频教程1"涵盖了几个关键的概念,包括变量、变量规则以及表达式。以下是对这些主题的详细解释: 1. 变量(Variables): 在Ruby中,变量用于存储数据,并在程序的不同位置使用。Ruby有五种不同...
10. **正则表达式**:Ruby内置了强大的正则表达式支持,用于文本匹配和处理。 11. **Ruby on Rails框架**:虽然"learning-ruby"主要针对语言基础,但了解Ruby最流行的Web开发框架Rails也是有帮助的,因为它展示了...
9. **正则表达式**:Ruby提供了强大的正则表达式库,用于文本匹配和操作。 10. **线程与并发**:Ruby支持多线程编程,虽然全局解释器锁(GIL)限制了并行执行,但在某些场景下仍能实现高效的并发处理。 11. **Ruby...
**6.8 case表达式** 提供了一种多路分支的选择结构。 ```ruby case x when 1 "one" when 2 "two" else "other" end ``` **6.9 循环** Ruby提供了多种循环结构,如`loop`、`while`、`until`等。 ```ruby i = ...
此外,书中还会涵盖Ruby的数组、哈希、字符串和正则表达式等数据结构,以及文件和目录操作。Ruby的标准库提供了丰富的功能,如网络通信、XML解析、数据库连接等,书中也会有相应介绍。 最后,对于新手来说,了解...
Ruby的控制结构包括条件语句(如if/else、case)、循环(如while、for、until)以及异常处理(如begin/rescue/ensure)。Ruby的异常处理机制允许开发者优雅地处理错误和异常情况。 Ruby的集合类型包括数组(Array)...
Ruby中的控制流结构丰富,包括条件语句(如if/else、case)、循环(如for、while、until、each)以及异常处理(如begin/rescue/ensure/finally)。Ruby还支持闭包,这是通过块、Proc和Lambda实现的,使得函数能够...
本篇文档将详细介绍Ruby速查手册中提到的关键知识点,包括预定义变量、保留字、类型、表达式、模块/类定义以及运算符和正则表达式的使用方法。 #### 预定义变量 Ruby提供了一系列预定义变量来帮助开发者在编程过程...
- 数据类型包括基本类型(如整数、浮点数、字符串、布尔值)和复合类型(如数组、哈希、范围、正则表达式)。 2. **控制结构** - `if`、`unless`用于条件判断,`case`语句提供多条件分支。 - `for`、`while`、`...
9. **正则表达式**:Ruby内置了强大的正则表达式引擎,提供了丰富的匹配和替换功能。 10. **文件和I/O操作**:Ruby提供了方便的API进行文件读写和系统级I/O操作,如File、Dir、IO等类。 11. **线程和并发**:Ruby...
- **特殊情况**:当 `case` 的表达式部分被省略时,将计算第一个 `when` 条件部分为真的表达式。 综上所述,通过上述介绍我们可以了解到Ruby在条件判断方面提供的丰富语法和支持,这些特性不仅使得代码更加简洁清晰...
- **控制结构**:Ruby支持常见的控制流语句,如`if`、`else`、`elsif`、`case`、`when`等。这些语句用于根据条件执行不同的代码块,使程序能够根据不同的情况做出相应的响应。 ##### 4. 正则表达式 - **正则表达式...
- **控制结构**:如条件语句(if/else)、循环(for、while、until)和case表达式。 - **方法**:Ruby中的函数被称为方法,可以定义自己的方法来实现特定功能。 - **类与对象**:Ruby是面向对象的语言,一切皆为...
- 正则表达式:`Regexp`类提供了正则表达式操作,用于文本匹配和替换。 4. **元编程** - 动态定义:Ruby允许在运行时定义类和方法,体现了高度的灵活性。 - 类方法和实例方法:`class 和`self.method`用于定义类...
6. **正则表达式**:Ruby内置了强大的正则表达式支持,学习匹配、替换和分割字符串的方法。 7. **Ruby标准库**:了解Ruby自带的一些常用库,如JSON、URI、Net::HTTP等,以及如何利用它们进行网络请求和数据解析。 ...
**6.8 case表达式** `case` 表达式提供了更复杂的条件分支结构。 **6.9 循环** Ruby支持多种循环结构,如`loop`、`while`、`until`等。 #### 七、方法 **7.1 运算符重定义** Ruby允许重新定义某些内置运算符的...
##### §6.8 case表达式 - **概念**:`case`表达式提供了一种更简洁的方式来判断条件。 - **示例**:`case x; when 1; puts "One"; when 2; puts "Two"; else; puts "Other"; end` ##### §6.9 循环 - **while循环*...