Penanganan error
Termasuk bagian Dasar-Dasar dalam perjalanan Ruby di Coddy. Pelajaran 85 dari 88.
Tantangan
MudahLengkapi Pelacak Pengeluaran Harian dengan menambahkan penanganan error untuk opsi menu yang tidak valid.
Programmu harus:
- Menginisialisasi array kosong bernama
expenses - Membuat
loop doyang menampilkan menu dan membaca input pengguna - Saat pengguna memasukkan
"1", meminta nama dan jumlah pengeluaran, membuat hash dengan kunci:namedan:amount, menambahkannya ke arrayexpenses, lalu mencetakExpense added! - Saat pengguna memasukkan
"2", menampilkan semua pengeluaran atau pesan jika belum ada - Saat pengguna memasukkan
"3", menghitung dan menampilkan total serta rata-rata semua pengeluaran, atau pesan jika belum ada - Saat pengguna memasukkan
"4", menghapus semua pengeluaran dari array dan mencetakAll expenses cleared! - Saat pengguna memasukkan
"5", mencetakGoodbye!dan keluar dari perulangan - Untuk input lainnya, mencetak:
Invalid option. Please try again.
Menu harus ditampilkan persis seperti sebelumnya:
--- Expense Tracker ---
1. Add Expense
2. View Expenses
3. Total & Average
4. Clear All
5. Exit
Choose an option: Misalnya, jika inputnya adalah 7, abc, lalu 5 (dua opsi tidak valid, lalu keluar), outputnya harus seperti berikut:
--- 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!Jika inputnya adalah 1, Coffee, 4.5, 6, 2, lalu 5 (menambahkan pengeluaran, opsi tidak valid, melihat pengeluaran, lalu keluar), outputnya harus seperti berikut:
--- 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!Coba sendiri
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 ""
endSemua pelajaran di Dasar-Dasar
4Operator Bagian 2
Operator Logika Bagian 1Operator Logika Bagian 2Ringkasan: Logika SederhanaOperator Logika Bagian 3Operator Logika Bagian 47Kalkulator Pembagian Tagihan
Pesan Selamat DatangMengambil input dari Pengguna10FizzBuzz dengan Variasi
Gambaran Umum PermainanMetode FizzBuzz2Variabel dan Tipe Data
Angka dan VariabelTipe Data stringTipe Data booleanTipe Data SymbolMemeriksa Tipe DataKonvensi PenamaanRangkuman: Membuat Variabel5Pengambilan Keputusan
Pernyataan IfIf - ElseRekap: Kalkulator SederhanaIf - Else BersarangPernyataan Unless8Perulangan
For Loop dengan RentangWhile LoopBreakNextRangkuman: FaktorialTimes LoopUntil LoopPerulangan BersarangRangkuman: Input Dinamis3Operator Bagian 1
Operator AritmetikaOperator ModuloPintasan AritmetikaRingkasan: Matematika SederhanaOperator Perbandingan6Dasar Input dan Output
Output dengan putsOutput dengan print dan pOutput dengan VariabelInput dengan getsMethod chompKonversi TipeRangkuman: Kalkulator UsiaRangkuman: Benar atau Salah9method
Mendefinisikan methodParameter methodNilai KembalianRangkuman: Sigma methodRangkuman: Validation methodNilai Default Parameter12Melakukan Perulangan pada Koleksi
Iterator EachEach dengan IndeksMelakukan Perulangan pada StringMap dan Collect15Pelacak Pengeluaran Harian
Ikhtisar ProyekKeluar dari ProgramLatihan sendiri: Compiler Ruby online