ruby case when语句
时间: 2024-04-23 14:21:01 浏览: 10
Ruby中的`case when`语句是一种条件判断语句,用于根据不同的条件执行不同的代码块。它的语法如下:
```ruby
case expression
when condition1
# 当条件1满足时执行的代码块
when condition2
# 当条件2满足时执行的代码块
else
# 当所有条件都不满足时执行的代码块
end
```
在`case`后面的`expression`是需要进行判断的表达式,可以是任何类型的数据。每个`when`后面跟着一个条件,当表达式的值与条件匹配时,对应的代码块将被执行。如果没有任何一个条件匹配,那么会执行`else`后面的代码块。
下面是一个示例,演示了如何使用`case when`语句:
```ruby
num = 5
case num
when 1
puts "数字为1"
when 2, 3
puts "数字为2或3"
when 4..6
puts "数字在4到6之间"
else
puts "其他数字"
end
```
在上面的示例中,变量`num`的值为5。根据不同的条件,输出结果为"数字在4到6之间"。
相关问题
case 里面when 怎么使用多个条件
在某些编程语言中,例如Ruby,你可以在一个 `case` 语句中使用多个条件来匹配。使用 `when` 关键字可以实现这一点。下面是一个示例:
```ruby
num = 2
case num
when 1, 3, 5
puts "num 的值是 1、3 或 5"
when 2, 4, 6
puts "num 的值是 2、4 或 6"
else
puts "num 的值不在指定范围内"
end
```
在上面的代码中,`case` 后面的表达式是要进行匹配的变量(这里是 `num`)。在每个 `when` 后面,你可以列出多个逗号分隔的条件值。如果变量的值匹配其中一个条件,则执行对应的代码块。如果没有匹配到任何条件,则执行 `else` 后面的代码块。
ruby 语法
Ruby的语法如下:
### 变量
声明变量时无需指定类型,可以直接使用,例如:
```ruby
x = 1
name = "John"
is_admin = true
```
### 控制流
Ruby支持if/else、while、for等控制流语句,例如:
```ruby
if age < 18
puts "未成年人"
elsif age >= 18 && age < 60
puts "成年人"
else
puts "老年人"
end
while count < 10 do
puts "count is #{count}"
count += 1
end
for i in 0..5 do
puts "i is #{i}"
end
```
### 函数
Ruby的函数定义形如:
```ruby
def add(x, y)
return x + y
end
```
也可以使用lambda表达式定义匿名函数:
```ruby
lambda { |x| x + 1 }
```
### 类
Ruby是一种面向对象的语言,支持类和对象的定义。类定义形如:
```ruby
class Person
attr_accessor :name, :age
def initialize(name, age)
@name = name
@age = age
end
def say_hello
puts "Hello, my name is #{@name}"
end
end
```
### 模块
Ruby的模块可以用于封装一些功能,也可以用于命名空间的管理。模块定义形如:
```ruby
module MyModule
def say_hello
puts "Hello!"
end
end
```
### 异常处理
Ruby支持异常处理机制,可以使用begin/rescue/end语句捕获异常,例如:
```ruby
begin
# some code that might raise an exception
rescue
# handle the exception
end
```