Menu
Coddy logo textTech

Visualizar Todas as Despesas

Parte da seção Fundamentos do Journey de Ruby da Coddy — lição 82 de 88.

challenge icon

Desafio

Fácil

Aprimore seu rastreador de despesas adicionando a funcionalidade "View Expenses".

Seu programa deve:

  1. Inicializar um array vazio chamado expenses
  2. Criar um loop do que exibe o menu e lê a entrada do usuário
  3. Quando o usuário inserir "1", solicitar o nome e o valor da despesa, criar um hash com as chaves :name e :amount, adicioná-lo ao array expenses e imprimir Expense added!
  4. Quando o usuário inserir "2", exibir todas as despesas ou uma mensagem se nenhuma existir
  5. Quando o usuário inserir "5", imprimir Goodbye! e sair do loop

O menu deve ser exibido exatamente como antes:


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

Quando a opção "2" for selecionada:

  • Se não houver despesas, imprima: No expenses recorded yet.
  • Se houver despesas, primeiro imprima uma linha em branco seguida por --- Your Expenses ---, depois imprima cada despesa no formato: Name: $Amount

Por exemplo, se as entradas forem 2, e depois 5 (visualizando quando vazio), a saída deve ser:


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

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

Se as entradas forem 1, Coffee, 4.5, 1, Lunch, 12.0, 2, e depois 5, a saída deve ser:


--- 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: Expense name: Amount: Expense added!

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

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

Experimente você mesmo

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.push({name: name, amount: amount})
    puts "Expense added!"
    puts ""
  elsif choice == "5"
    puts "Goodbye!"
    break
  end
end

Todas as lições de Fundamentos