```Jay Bornhoft wrote:
> I wrote this little prog giving the user two choices.
>
> I would really appreciate any advice on how I can improve anything about
> this program (structure, layout, etc)
>
> Many thanks!
>
> Code:
> -----
> # Name:   2choices-jb.rb
> # Date:   December 2006
> # Author: Jason Bornhoft
> # Email:  jbornhoft / gmail.com
>
> puts ""
> puts "Conversion Program"
> puts "------------------\n"
>
> puts "Would you like to convert:"
> puts "1. F to C"
> puts "2. C to F"
> puts"Enter your choice now: "
> choice = gets.chomp.to_i
>
> if choice == 1
>   puts "Enter a temperature in F:"
>   fahr = gets.chomp.to_f
>   cent = ( (fahr - 32) / 1.8 )
>   puts fahr.to_s + " F is " + cent.round.to_s + " C."
>
> elsif choice == 2
>   puts "Enter a temperature in C:"
>   cent = gets.chomp.to_f
>   fahr = ( (cent * 1.8) + 32 )
>   puts cent.to_s + " C is " + fahr.round.to_s + " F."
> else
>   puts "That is a not a valid choice.  Good bye!"
> end

print "
Conversion Program
------------------
Would you like to convert:
1. F to C
2. C to F

case gets.to_i
when 1
print "Enter a temperature in F: "
fahr = gets.to_f
cent = ( (fahr - 32) / 1.8 )
puts fahr.to_s + " F is " + cent.round.to_s + " C."

when 2
print "Enter a temperature in C: "
cent = gets.to_f
fahr = ( (cent * 1.8) + 32 )
puts "#{ cent } C is #{ fahr.round } F."

else
puts "That is a not a valid choice.  Good bye!"
end

---  A more interesting way.  -----

print "
Conversion Program
------------------
Would you like to convert:
1. F to C
2. C to F

def convert( from, to, func )
print "Enter a temperature in #{from}: "
temp = gets.to_f
puts "#{temp} #{from} is #{func[temp].round} #{to}."
end

case gets.to_i
when 1
convert( "F", "C", proc{|f| (f - 32) / 1.8 } )
when 2
convert( "C", "F", proc{|f| f * 1.8 + 32 } )
else
puts "That is a not a valid choice.  Good bye!"
end

```