i’ve been getting confused about what exactly the return statement

does…

i really think this book i’m reading “learn to program” is really not

that great of a book to be reading when getting into programming. While

the author covers somethings very much in depth, he barely touches some

things for more than a line, and sometimes not at all, and then you end

up finding it in his code.

Along with that confusion on the return function… i was code tracing

the code below and i understand it, except for one part, i just don’t

see where the code tells the program to print out the numString. I see

it telling the program to in the ‘one hundred’ section, but not at all

in the teens or single digits?

i read these forums everyday, and i really don’t understand that much of

the advanced stuff you guys talk about, but everyday i do begin to

understand more and more little parts, i just hope i’m not being a pain

in the arse. I guess it’s just a little hard learning from a book and

having no teacher to learn from… if you guys are getting annoyed, just

let me know. thank you again in advance.

def englishNumber number

# We only want numbers from 0-100.

if number < 0

return ‘Please enter a number zero or greater.’

end

if number > 100

return ‘Please enter a number 100 or lesser.’

end

numString = ‘’ # This is the string we will return.

# “left” is how much of the number we still have left to write out.

# “write” is the part we are writing out right now.

# write and left… get it?

left = number

write = left/100 # How many hundreds left to write out?

left = left - write*100 # Subtract off those hundreds.

if write > 0

return ‘one hundred’

end

write = left/10 # How many tens left to write out?

left = left - write*10 # Subtract off those tens.

if write > 0

if write == 1 # Uh-oh…

# Since we can’t write “tenty-two” instead of “twelve”,

# we have to make a special exception for these.

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

# Since we took care of the digit in the ones place already,

# we have nothing left to write.

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 # How many ones left to write out?

left = 0 # Subtract off those ones.

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 == ‘’

# The only way “numString” could be empty is if

# “number” is 0.

return ‘zero’

end

# If we got this far, then we had a number somewhere

# in between 0 and 100, so we need to return “numString”.

numString

end

puts englishNumber( 0)

puts englishNumber( 9)

puts englishNumber( 10)

puts englishNumber( 11)

puts englishNumber( 17)

puts englishNumber( 32)

puts englishNumber( 88)

puts englishNumber( 99)

puts englishNumber(100)