아래 프로그램은 "99 Bottles of Beer"노래의 가사를 출력합니다.삼항 연산자 거짓 인 경우 True 옵션 출력
노래가 1 병 남았던 지점에 도달하면 "병"이라는 단수 형태가 사용됩니다. 이 문제를 해결하기 위해 필자는 삼항 연산자를 사용하여 주어진 순간에 정확한 대소 문자를 선택했습니다. 는 삼항 연산자는 false로 평가 명확 경우에도 그러나
의 beer_bottles
카운트가 내 프로그램의 1에 도달, 마지막 문장은 아직도, "병"을 출력합니다.
IRB의 세 번째 연산자를 beer_bottles = 1
으로 테스트 한 결과 잘못된 옵션 인 "병"이 올바르게 출력되었습니다.
왜 이런 일이 발생하는지 이해하는 데 큰 도움이됩니다.
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
Q : 당신은 당신이 실제로 그 시점에서 "1"로 내려 하시겠습니까? Q : 감소 후 * 삼항을 움직여야합니까? – paulsm4
while 루프를 2 번에서 멈 춥니 다. 하나를 빼면'plural_or_singular'를 다시 계산하지 않습니다. 그걸 더 내려야합니다. –