Ruby 入门 互动版

Ruby 简介、环境与安装
Ruby介绍 Ruby 的特性 准备工具,开始干活 Ruby 环境 Ruby 安装 - Linux Ruby 中文编码
Ruby 语法
基本语法 基本概念 保留字 Ruby BEGIN 语句 Ruby END 语句 Ruby 注释
Ruby 数据类型
整型(Integer) 浮点型 字符串类型 反斜线符号 数组 哈希类型 范围类型
Ruby 类和对象
Ruby 类和对象 Ruby 中定义类 Ruby 中使用 new 方法创建对象 Ruby 类中的成员函数
变量
变量 Ruby 全局变量 Ruby 实例变量 Ruby 类变量 Ruby 局部变量和常量 Ruby 伪变量
运算符
算术运算符 比较运算符 赋值运算符 并行赋值 位运算符 逻辑运算符 三元运算符和范围运算符 Ruby defined? 运算符 Ruby 点运算符 "." 和双冒号运算符 "::" Ruby 运算符的优先级
Ruby 判断
if...else 语句 if 修饰符 unless 语句 unless 修饰符 case 语句
循环
while 语句 while 修饰符 until 语句 until 修饰符 for 语句 break 语句 next 语句 redo 语句 retry 语句
方法
语法 从方法返回值 return 语句 可变数量的参数 类方法 alias 语句与undef 语句
块介绍和语法 yield 语句 块和方法 BEGIN 和 END 块
模块(Module)
模块(Module) require 语句 include 语句 Ruby 中的 Mixins
文件的输入与输出
puts 语句 gets 语句 putc 语句 print 语句 打开和关闭文件 读取和写入文件 IO.readlines与IO.foreach 方法 重命名和删除文件 文件模式与所有权 文件查询 Ruby 中的目录 创建文件 & 临时目录
Ruby 异常
Ruby 异常 使用 retry 语句 使用 raise 语句 使用 ensure 语句 使用 else 语句 Catch 和 Throw 类 Exception
在线工具推荐: Three.js AI纹理开发包 - YOLO合成数据生成器 - GLTF/GLB在线编辑 - 3D模型格式在线转换 - 可编程3D场景编辑器

case 语句

语法

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

case先对一个 expression 进行匹配判断,然后根据匹配结果进行分支选择。

它使用 ===运算符比较 when 指定的 expression,若一致的话就执行 when 部分的内容。

通常我们省略保留字 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

实例

#!/usr/bin/ruby
# -*- coding: UTF-8 -*-

$age =  5
case $age
when 0 .. 2
    puts "婴儿"
when 3 .. 6
    puts "小孩"
when 7 .. 12
    puts "child"
when 13 .. 18
    puts "少年"
else
    puts "其他年龄段的"
end

以上实例输出结果为:

小孩

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

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
# 显示 "bar is true"