Odin Projectを使い、Rubyのエクササイズに取り掛かり、数字入力をして数字の飛行機の英語バージョン。 (ライン32)以下の太字部分を参照するエラーを取得する"+":nilをStringに暗黙的に変換しない(TypeError) "Rubyのエラー
def englishNumber number
if number < 0 # No negative numbers.
return 'Please enter a number that isn\'t negative.'
end
if number == 0
return 'zero'
end
numString = '' # This is the string we will return.
onesPlace = ['one', 'two', 'three', 'four', 'five',
'six', 'seven', 'eight', 'nine']
tensPlace = ['ten', 'twenty', 'thirty', 'forty', 'fifty',
'sixty', 'seventy', 'eighty', 'ninety']
teenagers = ['eleven', 'twelve', 'thirteen', 'fourteen', 'fifteen',
'sixteen', 'seventeen', 'eighteen', 'nineteen']
left = number
write = left/10000
left = left - write*10000
if write > 0
if ((write == 1) and (left > 0))
**numString = numString + teenagers[left-1] + ' thousand'**
left = 0
else
numString = numString + tensPlace[write-1] + ' thousand'
if left > 0
numString = numString + '-'
end
end
write = left/1000
left = left - write*1000
if write > 0
if left > 0
numString = numString + ' '
end
end
write = left/100
left = left - write*100
if write > 0
if left > 0
numString = numString + ' '
end
end
write = left/10
left = left - write*10
if write > 0
if ((write == 1) and (left > 0))
left = 0
else
numString = numString + tensPlace[write-1]
# The "-1" is because tensPlace[3] is 'forty', not 'thirty'.
end
if left > 0
numString = numString + '-'
end
end
write = left
left = 0
if write > 0
numString = numString + onesPlace[write-1]
# The "-1" is because onesPlace[3] is 'four', not 'three'.
end
# Now we just return "numString"...
numString
end
puts englishNumber 10100
最初の条件 'write> 0'には' if-else'がありますが 'end'はありません – zishe