通過克里斯派恩的學習編程和編號爲羅馬數字轉換項目。下面的代碼可以工作,但是如果(和結束)語句都很糟糕。但是,當我使用elsif程序不響應(似乎凍結)。任何想法都會有幫助!如何減少if語句?
def calc input
roman_numeral = ''
while true
if input >= 1000
roman_numeral += 'M' * (input/1000)
input = input - (1000 * (input/1000))
if input <= 999 || input >= 500
roman_numeral += 'D' * (input/500)
input = input - (500 * (input/500))
if input <= 499 || input >= 100
roman_numeral += 'C' * (input/100)
input = input - (100 * (input/100))
if input <= 99 || input >= 50
roman_numeral += 'L' * (input/50)
input = input - (50 * (input/50))
if input <= 49 || input >= 10
roman_numeral += 'X' * (input/10)
input = input - (10 * (input/10))
if input <= 9 || input >= 5
roman_numeral += 'V' * (input/5)
input = input - (5 * (input/5))
if input <= 4 || input >= 1
roman_numeral += 'I' * (input/1)
input = input - (1 * (input/1))
puts roman_numeral
break
end
end
end
end
end
end
end
end
end
puts 'Give me a number, any number:'
input = gets.chomp.to_i
calc(input)
情況下輸入學習編程第二; 當1..4羅馬數字+ = '我' *(輸入/ 1); ... 當5..9羅馬數字+ = 'V' *(輸入/ 5); ... –