Menu
Coddy logo textTech

Fehlerbehandlung

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

challenge icon

Aufgabe

Einfach

Vervollständigen Sie den Daily Expense Tracker, indem Sie eine Fehlerbehandlung für ungültige Menüoptionen hinzufügen.

Ihr Programm sollte:

  1. Ein leeres Array namens expenses initialisieren
  2. Einen loop do erstellen, der das Menü anzeigt und Benutzereingaben liest
  3. Wenn der Benutzer "1" eingibt, nach dem Namen der Ausgabe und dem Betrag fragen, einen Hash mit den Schlüsseln :name und :amount erstellen, diesen zum expenses Array hinzufügen und Expense added! ausgeben
  4. Wenn der Benutzer "2" eingibt, alle Ausgaben anzeigen oder eine Nachricht, falls keine vorhanden sind
  5. Wenn der Benutzer "3" eingibt, die Summe und den Durchschnitt aller Ausgaben berechnen und anzeigen, oder eine Nachricht, 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 beenden
  8. Für jede andere Eingabe Folgendes ausgeben: Invalid option. Please try again.

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 sind (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 sind (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