Добрый день! Недавно начал программировать на Ruby. На одном форуме нашел хорошую книгу и там написана программа которая пишет вам ваше число. (например, ввод - 34 => thirty four) Я не понимаю как она работает и в книги она плохо описана. Можете мне её пояснить что и как пожалуйста? (все выражение я понимаю типа return while def и прочие..) Вот код: Код | def englishNumber number if number < 0 return 'Please enter a number that bigger than 0' end if number > 100 return 'Please enter a number that less than 100' end numString = '' left = number write = left/100 left = left - write*100 if write > 0 return 'One hundred' end write = left/10 left = left - write*10 if write > 0 if write == 1 if left == 0 numString = numString + 'ten' elsif left == 1 numString = numString + 'eleven' elsif left == 2 numString = numString + 'twelve' elsif left == 3 numString = numString + 'thirteen' elsif left == 4 numString = numString + 'fourteen' elsif left == 5 numString = numString + 'fifteen' elsif left == 6 numString = numString + 'sixteen' elsif left == 7 numString = numString + 'seventeen' elsif left == 8 numString = numString + 'eighteen' elsif left == 9 numString = numString + 'nineteen' end left = 0 elsif write == 2 numString = numString + 'twenty' elsif write == 3 numString = numString + 'thirty' elsif write == 4 numString = numString + 'forty' elsif write == 5 numString = numString + 'fifty' elsif write == 6 numString = numString + 'sixty' elsif write == 7 numString = numString + 'seventy' elsif write == 8 numString = numString + 'eighty' elsif write == 9 numString = numString + 'ninety' end if left > 0 numString = numString + '-' end end write = left left = 0
if write > 0 if write == 1 numString = numString + 'one' elsif write == 2 numString = numString + 'two' elsif write == 3 numString = numString + 'three' elsif write == 4 numString = numString + 'four' elsif write == 5 numString = numString + 'five' elsif write == 6 numString = numString + 'six' elsif write == 7 numString = numString + 'seven' elsif write == 8 numString = numString + 'eight' elsif write == 9 numString = numString + 'nine' end end
if numString == '' return 'zero' end numString end
puts englishNumber( 0) puts englishNumber( 9) puts englishNumber( 10) puts englishNumber( 13) puts englishNumber( 32) puts englishNumber( 90) puts englishNumber(100) puts englishNumber(111)
|
Это сообщение отредактировал(а) UDeaPI - 16.1.2016, 13:42
|