Przesiadłem się z Pythona na Ruby. Powodem przesiadki było to że do Pythona muszę się zmuszać a Ruby jakoś mi bardziej przypasował po prostu.
Proszę o code review kodu
# frozen_string_literal: true
def read_number(prompt = 'Enter the number: ')
loop do
print prompt
user_input = Float(gets.chomp)
return Float(user_input)
rescue ArgumentError
puts 'Error: not a number.'
end
end
loop do
puts '*** Main menu ***'
puts '1) Add'
puts '2) Subtract'
puts '3) Multiply'
puts '4) Divide'
puts '5) Quit'
user_choice = read_number 'Your choice: '
exit if user_choice == 5
first = read_number
last = read_number
case user_choice
when 1
puts "The result is #{first + last}"
when 2
puts "The result is #{first - last}"
when 3
puts "The result is #{first * last}"
when 4
begin
raise ZeroDivisionError if last.zero?
puts "The result is #{first / last}"
rescue ZeroDivisionError
puts 'Error: cannot divide by zero.'
end
else
puts 'Error: invalid choice.'
end
end