【发布时间】:2017-10-25 10:46:32
【问题描述】:
目前我的代码将显示 1 到 100,但当它可以被 3 或 5 或两者整除时,实际上不会打印出 case 语句......我在这里做错了什么?
def display(item_count)
n = 1
while n <= item_count
case n
when n % 3 == 0
puts "foo"
when n % 5 == 0
puts "bar"
when (n % 3 ==0 && n % 5 == 0)
puts "foobar"
else
puts "#{n}"
end #-- case end stmt
n = n + 1
end #while end statement
end #end satement for metod
puts " How many items do you want to see"
item_count = gets.chomp.to_i
puts "#{display(item_count)}"
【问题讨论】:
-
foobar 问题的确切目的是检测/排除编写此类代码的人。确实,问题正在按预期运行。
-
目前我的代码将显示 1 到 100,但当它可以被 3 或 5 或两者整除时,实际上不会打印出 case 语句......我在这里做错了什么?
-
阅读 Ruby 中的
caseexpressions,直到你明白为什么发布的代码总是采用else分支。 -
@axiac ...好的,我明白我做错了什么..这是新的实现:def display(item_count) n = 1 while n
-
这被称为 fizzbuzz。