`
clark1231
  • 浏览: 255486 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

ruby case表达式

    博客分类:
  • ruby
阅读更多

 

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表达式详解

    Ruby的case表达式有两种形式: 第一种形式接近于一组连续的if语句:它让你列出一组条件,并执行第一个为真的条件表达式所对应的语句。 第二种形式,在case语句的顶部指定一个目标,而每个when从句列出一个或者多个...

    Ruby 基础语法 视频教程1

    这个"Ruby基础语法视频教程1"涵盖了几个关键的概念,包括变量、变量规则以及表达式。以下是对这些主题的详细解释: 1. 变量(Variables): 在Ruby中,变量用于存储数据,并在程序的不同位置使用。Ruby有五种不同...

    learning-ruby.

    10. **正则表达式**:Ruby内置了强大的正则表达式支持,用于文本匹配和处理。 11. **Ruby on Rails框架**:虽然"learning-ruby"主要针对语言基础,但了解Ruby最流行的Web开发框架Rails也是有帮助的,因为它展示了...

    ruby入门到精通

    9. **正则表达式**:Ruby提供了强大的正则表达式库,用于文本匹配和操作。 10. **线程与并发**:Ruby支持多线程编程,虽然全局解释器锁(GIL)限制了并行执行,但在某些场景下仍能实现高效的并发处理。 11. **Ruby...

    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基础教程(中文第4版)

    此外,书中还会涵盖Ruby的数组、哈希、字符串和正则表达式等数据结构,以及文件和目录操作。Ruby的标准库提供了丰富的功能,如网络通信、XML解析、数据库连接等,书中也会有相应介绍。 最后,对于新手来说,了解...

    Ruby不完全读书指南.rar

    Ruby的控制结构包括条件语句(如if/else、case)、循环(如while、for、until)以及异常处理(如begin/rescue/ensure)。Ruby的异常处理机制允许开发者优雅地处理错误和异常情况。 Ruby的集合类型包括数组(Array)...

    ruby语言入门教程(中文版)[PDF]

    Ruby中的控制流结构丰富,包括条件语句(如if/else、case)、循环(如for、while、until、each)以及异常处理(如begin/rescue/ensure/finally)。Ruby还支持闭包,这是通过块、Proc和Lambda实现的,使得函数能够...

    Ruby Sheet.pdf

    本篇文档将详细介绍Ruby速查手册中提到的关键知识点,包括预定义变量、保留字、类型、表达式、模块/类定义以及运算符和正则表达式的使用方法。 #### 预定义变量 Ruby提供了一系列预定义变量来帮助开发者在编程过程...

    Ruby In a Nutshell

    - 数据类型包括基本类型(如整数、浮点数、字符串、布尔值)和复合类型(如数组、哈希、范围、正则表达式)。 2. **控制结构** - `if`、`unless`用于条件判断,`case`语句提供多条件分支。 - `for`、`while`、`...

    ruby基础教程中文第四版

    9. **正则表达式**:Ruby内置了强大的正则表达式引擎,提供了丰富的匹配和替换功能。 10. **文件和I/O操作**:Ruby提供了方便的API进行文件读写和系统级I/O操作,如File、Dir、IO等类。 11. **线程和并发**:Ruby...

    04Ruby 条件判断.docx

    - **特殊情况**:当 `case` 的表达式部分被省略时,将计算第一个 `when` 条件部分为真的表达式。 综上所述,通过上述介绍我们可以了解到Ruby在条件判断方面提供的丰富语法和支持,这些特性不仅使得代码更加简洁清晰...

    Programming Ruby 1.9 3rd edition

    - **控制结构**:Ruby支持常见的控制流语句,如`if`、`else`、`elsif`、`case`、`when`等。这些语句用于根据条件执行不同的代码块,使程序能够根据不同的情况做出相应的响应。 ##### 4. 正则表达式 - **正则表达式...

    ruby小程序2.rar

    - **控制结构**:如条件语句(if/else)、循环(for、while、until)和case表达式。 - **方法**:Ruby中的函数被称为方法,可以定义自己的方法来实现特定功能。 - **类与对象**:Ruby是面向对象的语言,一切皆为...

    ruby的API文档,有需要同事请下载

    - 正则表达式:`Regexp`类提供了正则表达式操作,用于文本匹配和替换。 4. **元编程** - 动态定义:Ruby允许在运行时定义类和方法,体现了高度的灵活性。 - 类方法和实例方法:`class 和`self.method`用于定义类...

    ruby中文教程,pdf格式,含.rb源代码

    6. **正则表达式**:Ruby内置了强大的正则表达式支持,学习匹配、替换和分割字符串的方法。 7. **Ruby标准库**:了解Ruby自带的一些常用库,如JSON、URI、Net::HTTP等,以及如何利用它们进行网络请求和数据解析。 ...

    Ruby程序设计.doc

    **6.8 case表达式** `case` 表达式提供了更复杂的条件分支结构。 **6.9 循环** Ruby支持多种循环结构,如`loop`、`while`、`until`等。 #### 七、方法 **7.1 运算符重定义** Ruby允许重新定义某些内置运算符的...

    ruby 程序设计

    ##### §6.8 case表达式 - **概念**:`case`表达式提供了一种更简洁的方式来判断条件。 - **示例**:`case x; when 1; puts "One"; when 2; puts "Two"; else; puts "Other"; end` ##### §6.9 循环 - **while循环*...

Global site tag (gtag.js) - Google Analytics