Menu
Coddy logo textTech

Resumen - Calculadora segura

Parte de la sección Lógica y flujo del Journey de Ruby de Coddy — lección 47 de 56.

Construye una pequeña calculadora que sobreviva a entradas incorrectas, combinando raise, múltiples cláusulas rescue y ensure.

challenge icon

Desafío

Intermedio

Define un método calc(a, op, b) que:

  • Lance un ArgumentError con el mensaje "unknown operator" si op no es uno de los siguientes: +, -, *, /
  • Realice la operación en caso contrario (usa aritmética de enteros para /)

Luego, lee tres líneas de la entrada, a, op, b: y llama a calc dentro de un bloque begin / rescue / ensure:

  • Si tiene éxito, imprime <a> <op> <b> = <result>
  • Ante un ArgumentError, imprime Bad operator
  • Ante un ZeroDivisionError, imprime Cannot divide by zero
  • En el ensure, imprime siempre --- end ---

Usa Integer(...) para analizar a y b, dentro del mismo bloque begin, de modo que una entrada que no sea un entero también resulte en Bad operator (ArgumentError cubre ambos casos).

Para la entrada 6 / * / 7, la salida es:

6 * 7 = 42
--- end ---

Para la entrada 10 / / / 0:

Cannot divide by zero
--- end ---

Pruébalo tú mismo

# TODO: definir calc(a, op, b), lanza ArgumentError en caso de op desconocida

raw_a = gets.chomp
op    = gets.chomp
raw_b = gets.chomp

# TODO: begin/rescue/ensure como se describió

Todas las lecciones de Lógica y flujo