1
Hello
I would like a help, I’m starting with language and I’m having some doubts, What I want in my code is that the division calculation is not divided by zero. The moment I enter the value of Y = 0 returns a message "Invalid, cannot be divided by 0".
When I do an Insert with divisor 0 returns this message:
Calculadora03.rb:32:in `/': divided by 0 (ZeroDivisionError)
from Calculadora03.rb:32:in `calculo'
from Calculadora03.rb:57:in `<main>'
This is my code:
def escolha_operador
puts "Escolha o tipo de operação abaixo:"
puts "1 Adição"
puts "2 Subtração"
puts "3 Multiplicação"
puts "4 Divisão"
puts ""
tipo_operador = gets.chomp().to_i
if tipo_operador == 1
return "Adição"
elsif tipo_operador == 2
return "Subtração"
elsif tipo_operador == 3
return "Multiplicação"
elsif tipo_operador == 4
return "Divisão"
else
return "erro"
end
end
def calculo(operacao, x, y)
if operacao == "Adição"
return resultado = x + y
elsif operacao == "Subtração"
return resultado = x - y
elsif operacao == "Multiplicação"
return resultado = x * y
elsif operacao == "Divisão"
return resultado = x / y
end
# elsif operacao == "Divisão"
# rescue ZeroDivisionError
# else
# return resultado = x / y
# end
end
continuar = 1
while continuar == 1
calculo_atual = escolha_operador()
if calculo_atual == "erro"
puts "Opção invalido! Escolha a opção correta."
else
puts "Entre com o primeiro valor da #{calculo_atual}: "
p_numero = gets.to_i
puts "Entre com o segundo valor da #{calculo_atual}: "
s_numero = gets.to_i
result = calculo(calculo_atual, p_numero, s_numero)
puts "O resultado é #{result}"
puts "Deseja continuar o calculo? Digite 1- Sim ou 2- Não"
continuar = gets.to_i
system ('cls')
if continuar != 1
end
end
end
Do you want to subvert mathematics? What would be the result of a number divided by 0?
– Maniero
Your question is unclear. Dividing by 0 is an error that was discovered long before the invention of programming languages. Now, if you want to treat the split when the divisor is 0, just do a
if
rather invoke division. If divisor is 0, do not divide– user5299
@Amadeus sorry I ended up describing wrong even my doubt. What I want in my code is that the division calculation is not divided by zero. The moment I am putting the value of Y = 0 returns a message "Invalid, cannot be divided by 0".
– Cintia B