Menu
Coddy logo textTech

Zusammenfassung – Sicherer Taschenrechner

Teil des Abschnitts Logik & Programmfluss der Ruby-Journey von Coddy — Lektion 47 von 56.

Erstellen Sie einen kleinen Taschenrechner, der fehlerhafte Eingaben übersteht und dabei raise, mehrere rescue-Klauseln sowie ensure kombiniert.

challenge icon

Aufgabe

Mittel

Definieren Sie eine Methode calc(a, op, b), die:

  • Einen ArgumentError mit der Nachricht "unknown operator" auslöst, wenn op nicht einer der Operatoren +, -, *, / ist
  • Andernfalls die Operation ausführt (verwenden Sie Ganzzahlarithmetik für /)

Lesen Sie dann drei Zeilen von der Eingabe ein, a, op, b: und rufen Sie calc innerhalb von begin / rescue / ensure auf:

  • Bei Erfolg geben Sie <a> <op> <b> = <result> aus
  • Bei einem ArgumentError geben Sie Bad operator aus
  • Bei einem ZeroDivisionError geben Sie Cannot divide by zero aus
  • In ensure geben Sie immer --- end --- aus

Verwenden Sie Integer(...) zum Parsen von a und b innerhalb desselben begin-Blocks, sodass nicht-ganzzahlige Eingaben ebenfalls bei Bad operator landen (ArgumentError deckt beides ab).

Für die Eingabe 6 / * / 7 lautet die Ausgabe:

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

Für die Eingabe 10 / / / 0:

Cannot divide by zero
--- end ---

Probier es selbst

# TODO: definiere calc(a, op, b), wirft ArgumentError bei unbekanntem op

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

# TODO: begin/rescue/ensure wie beschrieben

Alle Lektionen in Logik & Programmfluss