Menu
Coddy logo textTech

Fehlerbehandlung

Teil des Abschnitts Grundlagen der Ruby-Journey von Coddy. Lektion 85 von 88.

challenge icon

Aufgabe

Einfach

Vervollständige den täglichen Ausgaben-Tracker, indem du eine Fehlerbehandlung für ungültige Menüoptionen hinzufügst.

Dein Programm sollte:

  1. Ein leeres Array namens expenses initialisieren
  2. Eine loop do-Schleife erstellen, die das Menü anzeigt und die Benutzereingabe liest
  3. Wenn der Benutzer "1" eingibt, nach dem Namen und dem Betrag der Ausgabe fragen, einen Hash mit den Schlüsseln :name und :amount erstellen, ihn zum Array expenses hinzufügen und Expense added! ausgeben
  4. Wenn der Benutzer "2" eingibt, alle Ausgaben anzeigen oder eine Nachricht ausgeben, falls keine vorhanden sind
  5. Wenn der Benutzer "3" eingibt, die Gesamtsumme und den Durchschnitt aller Ausgaben berechnen und anzeigen oder eine Nachricht ausgeben, falls keine vorhanden sind
  6. Wenn der Benutzer "4" eingibt, alle Ausgaben aus dem Array löschen und All expenses cleared! ausgeben
  7. Wenn der Benutzer "5" eingibt, Goodbye! ausgeben und die Schleife verlassen
  8. Bei jeder anderen Eingabe Invalid option. Please try again. ausgeben

Das Menü sollte genau wie zuvor angezeigt werden:


--- Expense Tracker ---
1. Add Expense
2. View Expenses
3. Total & Average
4. Clear All
5. Exit
Choose an option: 

Wenn die Eingaben beispielsweise 7, abc und dann 5 lauten (zwei ungültige Optionen, dann beenden), sollte die Ausgabe wie folgt aussehen:


--- Expense Tracker ---
1. Add Expense
2. View Expenses
3. Total & Average
4. Clear All
5. Exit
Choose an option: Invalid option. Please try again.

--- Expense Tracker ---
1. Add Expense
2. View Expenses
3. Total & Average
4. Clear All
5. Exit
Choose an option: Invalid option. Please try again.

--- Expense Tracker ---
1. Add Expense
2. View Expenses
3. Total & Average
4. Clear All
5. Exit
Choose an option: Goodbye!

Wenn die Eingaben 1, Coffee, 4.5, 6, 2 und dann 5 lauten (Ausgabe hinzufügen, ungültige Option, anzeigen, beenden), sollte die Ausgabe wie folgt aussehen:


--- Expense Tracker ---
1. Add Expense
2. View Expenses
3. Total & Average
4. Clear All
5. Exit
Choose an option: Expense name: Amount: Expense added!

--- Expense Tracker ---
1. Add Expense
2. View Expenses
3. Total & Average
4. Clear All
5. Exit
Choose an option: Invalid option. Please try again.

--- Expense Tracker ---
1. Add Expense
2. View Expenses
3. Total & Average
4. Clear All
5. Exit
Choose an option: 
--- Your Expenses ---
Coffee: $4.5

--- Expense Tracker ---
1. Add Expense
2. View Expenses
3. Total & Average
4. Clear All
5. Exit
Choose an option: Goodbye!

Probier es selbst

expenses = []

loop do
  puts "--- Expense Tracker ---"
  puts "1. Add Expense"
  puts "2. View Expenses"
  puts "3. Total & Average"
  puts "4. Clear All"
  puts "5. Exit"
  print "Choose an option: "
  
  choice = gets.chomp
  
  if choice == "1"
    print "Expense name: "
    name = gets.chomp
    print "Amount: "
    amount = gets.chomp.to_f
    expenses << { name: name, amount: amount }
    puts "Expense added!"
  elsif choice == "2"
    if expenses.empty?
      puts "No expenses recorded yet."
    else
      expenses.each do |expense|
        puts "#{expense[:name]}: $#{expense[:amount]}"
      end
    end
  elsif choice == "3"
    if expenses.empty?
      puts "No expenses to calculate."
    else
      total = expenses.sum { |expense| expense[:amount] }
      average = total / expenses.length
      puts "Total: $#{total}"
      puts "Average: $#{average}"
    end
  elsif choice == "4"
    expenses.clear
    puts "All expenses cleared!"
  elsif choice == "5"
    puts "Goodbye!"
    break
  end
  
  puts ""
end

Alle Lektionen in Grundlagen

Übe selbstständig: Online-Ruby-Compiler