下面的程序輸出歌曲「99瓶啤酒」的歌詞。三元操作器輸出錯誤時的True Option
當歌曲達到只剩1瓶的地步時,它使用單數形式的「瓶子」。爲了適應這種情況,我使用三元運算符在任何特定時刻選擇正確的案例。
但是,當beer_bottles
count在我的程序中達到1時,即使明確表示三元運算符評估爲false,最後一句仍然輸出「bottles」。
我在IRB中用beer_bottles = 1
測試了三元運算符,它正確地輸出了錯誤的選項:「bottle」。
幫助理解爲什麼發生這種情況非常感謝!
beer_bottles = 99
while beer_bottles >= 2 do
plural = "bottles"
singular = "bottle"
plural_or_singular = beer_bottles > 1 ? plural : singular
puts "#{beer_bottles} #{plural_or_singular} of beer on the wall, #{beer_bottles} #{plural_or_singular} of beer."
beer_bottles -= 1
puts "BOTTLE COUNT: #{beer_bottles}"
puts "Take one down and pass it around, #{beer_bottles} #{plural_or_singular} of beer on the wall."
end
問:你確定你確實在這一點踏踏實實爲「1」?問:你應該移動三元*後*減量? – paulsm4
您將while循環停在2.在減去一個之後,您不重新計算'plural_or_singular'。你應該進一步向下移動。 –