在本章中,我们将深入探讨 Ruby 中的 case 语句。case 语句提供了一种简洁的方式来处理多条件判断的情况,使得代码更加清晰易读。
什么是 Case 语句?
case 语句是 Ruby 提供的一种多分支选择结构,它类似于其他语言中的 switch 语句。使用 case 语句可以帮助我们根据不同的条件执行不同的代码块。这使得代码更加简洁和易于维护。
Case 语句的基本语法
case 语句的基本语法如下:
case expression when condition1 # 当 expression 匹配 condition1 时执行的代码 when condition2 # 当 expression 匹配 condition2 时执行的代码 else # 当 expression 不匹配任何条件时执行的代码 end
示例
假设我们需要根据用户输入的数字来输出对应的星期几,可以这样写:
// www.javascriptcn.com code example day_number = gets.chomp.to_i case day_number when 1 puts "星期一" when 2 puts "星期二" when 3 puts "星期三" when 4 puts "星期四" when 5 puts "星期五" when 6 puts "星期六" when 7 puts "星期日" else puts "请输入一个 1 到 7 之间的数字" end
在这个例子中,case 语句根据 day_number 的值执行相应的代码块。
多条件 Case 语句
case 语句不仅可以处理单一条件,还可以处理多个条件。你可以通过逗号分隔多个条件:
case expression when condition1, condition2 # 当 expression 匹配 condition1 或 condition2 时执行的代码 end
示例
假设我们需要根据用户输入的年龄范围输出不同的信息:
// www.javascriptcn.com code example age = gets.chomp.to_i case age when 0..12 puts "儿童" when 13..19 puts "青少年" when 20..60 puts "成年人" else puts "老年人" end
在这个例子中,我们使用了范围运算符 .. 来定义多个条件。
使用表达式作为条件
除了简单的条件,你也可以在 case 语句中使用更复杂的表达式。这使得 case 语句非常灵活,可以处理多种情况。
示例
假设我们需要根据用户输入的字符串来输出不同的结果:
// www.javascriptcn.com code example input = gets.chomp case input when "yes", "YES", "Yes" puts "你同意了" when "no", "NO", "No" puts "你拒绝了" else puts "你的回答不是肯定的也不是否定的" end
在这个例子中,我们检查了多个字符串条件,并输出相应的结果。
Case 语句的简化写法
在某些情况下,你可以省略 case 后面的表达式,直接比较条件:
case when condition1 # 当 condition1 为真时执行的代码 when condition2 # 当 condition2 为真时执行的代码 else # 当所有条件都为假时执行的代码 end
示例
假设我们需要根据用户的输入来判断其是否符合某个条件:
// www.javascriptcn.com code example input = gets.chomp case when input == "admin" puts "管理员权限" when input.length > 5 puts "输入过长" else puts "普通用户" end
在这个例子中,我们没有指定 case 后面的表达式,而是直接比较各个条件。
总结
case 语句是一种强大的工具,可以帮助你处理复杂的条件逻辑。通过灵活使用 case 语句,可以使你的代码更加简洁、可读性更高。希望本章的内容能够帮助你更好地理解和应用 case 语句。
接下来,我们将学习 Ruby 中的循环结构,敬请期待!