【发布时间】:2017-07-10 17:02:51
【问题描述】:
为什么这不起作用。我正在尝试重构代码以使用尽可能少的字符..
for i in 1..200 # 33
if (i%3 == 0) # 34
if (i%5 == 0) ? puts "FizzBuzz" : puts 'Fizz' # 35
end # 36
elsif (i%5 == 0) ? puts "FizzBuzz" # 37
if (i%3 == 0) # 38
else puts "Buzz" # 39
end # 40
else puts i # 41
end # 42
end # 43
【问题讨论】:
-
你的错误是什么
-
numberGame.rb:35: syntax error, unexpected tSTRING_BEG, expecting keyword_do or '{' or '(' if (i%5 == 0) ? puts "FizzBuzz" : puts 'Fizz'- 这是 5 个错误中的第一个 -
当使用 'if' 时,动作应该在 'if'/'elif'/'else' 行和 'end' 之间。除了与三元运算符相关的错误之外,您还会遇到其他错误
-
三元是
x ? y : z。不是if x ? y : z。 -
@Mohammad 你有那个代码的工作版本吗?
标签: ruby ternary-operator