2017-02-21 9 views
-1

なぜこれが機能しないのですか?私は可能な文字の最小数を使用するコードをリファクタリングしようとしています。..3次演算子if ... elsif ... else try Ruby

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 
+0

あなたのエラーは何ですか –

+0

'numberGame.rb:35:構文エラー、予期しないtSTRING_BEG、expecting keyword_doまたは '{'または '(' if(i%5 == 0)? "FizzBu​​zz"を置きます:puts 'Fizz'' - これは5つのエラーのうち最初のものです – Mohammad

+0

' if 'を使用する場合、アクションは' if '/' elif '/' else '行と' end 'の間にある必要があります。三項演算子に関連するエラー以外のエラーが発生します – grail

答えて

1

使用puts i%5 == 0 ? "FizzBuzz" :'Fizz'

代わりのif (i%5 == 0) ? puts "FizzBuzz" : puts 'Fizz'

したい場合は、すべてのそのような文

2

のためにこれを行いますネストされたif-elseを使用するには

(1..200).each do |num| 
    if (num%3 == 0 && num%5 == 0) 
    puts "BucksFizz" 
    elsif num%3 == 0 
    puts "Bucks" 
    elsif num%5 == 0 
    puts "Fizz" 
    elsif 
    puts num 
    end   
end 
+0

となります。 –

関連する問題