Menu
Coddy logo textTech

Просмотр всех расходов

Часть раздела Основы путешествия по Ruby на Coddy. Урок 82 из 88.

challenge icon

Задание

Легко

Доработайте свой трекер расходов, добавив функциональность "View Expenses".

Ваша программа должна:

  1. Инициализировать пустой массив с именем expenses
  2. Создать цикл loop do, который отображает меню и считывает ввод пользователя
  3. Когда пользователь вводит "1", запросить название расхода и сумму, создать хеш с ключами :name и :amount, добавить его в массив expenses и вывести Expense added!
  4. Когда пользователь вводит "2", вывести все расходы или сообщение, если они отсутствуют
  5. Когда пользователь вводит "5", вывести Goodbye! и выйти из цикла

Меню должно отображаться точно так же, как и раньше:


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

Когда выбрана опция "2":

  • Если расходов нет, выведите: No expenses recorded yet.
  • Если расходы есть, сначала выведите пустую строку, затем --- Your Expenses ---, а после этого выведите каждый расход в формате: Name: $Amount

Например, если на входе подаются 2, а затем 5 (просмотр при пустом списке), вывод должен быть следующим:


--- 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!

Если на входе подаются 1, Coffee, 4.5, 1, Lunch, 12.0, 2, а затем 5, вывод должен быть следующим:


--- 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!

Попробуйте сами

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

Все уроки раздела Основы

Потренируйтесь самостоятельно: Онлайн-компилятор Ruby