首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Ruby将If语句转换为Case

Ruby将If语句转换为Case
EN

Stack Overflow用户
提问于 2010-01-19 18:57:58
回答 5查看 1.9K关注 0票数 2

是否可以使用case语句来替换这些if语句?

代码语言:javascript
运行
复制
if (a%3 == 0) then puts "%3"
elsif (a%4 == 0) then puts "%4"
elsif (a%7 == 0 && a%13 == 0) then puts "%%"
EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2010-01-19 19:39:26

代码语言:javascript
运行
复制
case
  when (a % 3).zero? then puts "%3"
  when (a % 4).zero? then puts "%4"
  when (a % 7).zero? && (a % 13).zero? then puts "%%"
end
票数 6
EN

Stack Overflow用户

发布于 2010-01-19 19:39:15

当然:

代码语言:javascript
运行
复制
case
when (a%3 == 0) then puts "%3"
when (a%4 == 0) then puts "%4"
when (a%7 == 0 && a%13 == 0) then puts "%%"
end

这也好不到哪里去,不是吗?;-)

票数 3
EN

Stack Overflow用户

发布于 2010-01-20 07:07:13

代码语言:javascript
运行
复制
puts [3,4,91,10].collect do |a|
 case 0
 when a % 3 then
  "%3"
 when a % 4 then
  "%4"
 when a % 91 then
  "%%"
 end
end

您应该能够将其复制到irb中以查看其工作情况。请原谅这种轻微的7*13 = 91攻击,但如果你使用的是实际的模运算,它们应该是等价的。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2092905

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档