Menu
Coddy logo textTech

Récapitulatif - Calculatrice sécurisée

Fait partie de la section Logique et Flux du Journey Ruby de Coddy — leçon 47 sur 56.

Construisez une petite calculatrice qui gère les entrées incorrectes, en combinant raise, plusieurs clauses rescue et ensure.

challenge icon

Défi

Moyen

Définissez une méthode calc(a, op, b) qui :

  • Lève une ArgumentError avec le message "unknown operator" si op n'est pas l'un des opérateurs suivants : +, -, *, /
  • Effectue l'opération sinon (utilisez l'arithmétique entière pour /)

Ensuite, lisez trois lignes depuis l'entrée, a, op, b : et appelez calc à l'intérieur d'un bloc begin / rescue / ensure :

  • En cas de succès, affichez <a> <op> <b> = <result>
  • En cas d'ArgumentError, affichez Bad operator
  • En cas de ZeroDivisionError, affichez Cannot divide by zero
  • Dans le bloc ensure, affichez toujours --- end ---

Utilisez Integer(...) pour analyser a et b, à l'intérieur du même bloc begin, afin que les entrées non entières aboutissent également à Bad operator (ArgumentError couvre les deux cas).

Pour l'entrée 6 / * / 7, la sortie est :

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

Pour l'entrée 10 / / / 0 :

Cannot divide by zero
--- end ---

Essayez vous-même

# TODO: définir calc(a, op, b), lève ArgumentError pour un op inconnu

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

# TODO: begin/rescue/ensure comme décrit

Toutes les leçons de Logique et Flux