Hata Yönetimi
Coddy'nin Ruby Journey'sinin Temeller bölümünün bir parçası — ders 85 / 88.
Görev
KolayGeçersiz menü seçenekleri için hata yönetimi ekleyerek Günlük Gider Takipçisini tamamlayın.
Programınız şunları yapmalıdır:
expensesadında boş bir dizi başlatın- Menüyü görüntüleyen ve kullanıcı girişini okuyan bir
loop dooluşturun - Kullanıcı
"1"girdiğinde, gider adını ve tutarını isteyin,:nameve:amountanahtarlarına sahip bir hash oluşturun, bunuexpensesdizisine ekleyin veExpense added!yazdırın - Kullanıcı
"2"girdiğinde, tüm giderleri veya hiç yoksa bir mesaj görüntüleyin - Kullanıcı
"3"girdiğinde, tüm giderlerin toplamını ve ortalamasını veya hiç yoksa bir mesaj hesaplayın ve görüntüleyin - Kullanıcı
"4"girdiğinde, dizideki tüm giderleri temizleyin veAll expenses cleared!yazdırın - Kullanıcı
"5"girdiğinde,Goodbye!yazdırın ve döngüden çıkın - Diğer tüm girişler için şunu yazdırın:
Invalid option. Please try again.
Menü tam olarak eskisi gibi görüntülenmelidir:
--- Expense Tracker ---
1. Add Expense
2. View Expenses
3. Total & Average
4. Clear All
5. Exit
Choose an option: Örneğin, girişler 7, abc, ardından 5 (iki geçersiz seçenek, sonra çıkış) ise, çıktı şöyle olmalıdır:
--- 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!Girişler 1, Coffee, 4.5, 6, 2, ardından 5 (gider ekle, geçersiz seçenek, görüntüle, çıkış) ise, çıktı şöyle olmalıdır:
--- 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!Kendin dene
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 ""
endTemeller bölümündeki tüm dersler
4Operatörler Bölüm 2
Mantıksal Operatörler Bölüm 1Mantıksal Operatörler Bölüm 2Özet - Basit MantıkMantıksal Operatörler Bölüm 3Mantıksal Operatörler Bölüm 47Hesap Paylaşımı Hesaplayıcısı
Hoş Geldiniz MesajıKullanıcı Girdisi Alma13İleri Seviye Diziler
Aralıklar ile Dizi Dilimlemeİndeksler ile Dizi DilimlemeDizi OperatörleriInclude? Metodu2Değişkenler ve Veri Tipleri
Sayılar ve DeğişkenlerString Veri TipiBoolean Veri TipiSymbol Veri TipiVeri Tiplerini Kontrol Etmeİsimlendirme KurallarıÖzet - Değişken Oluşturma8Döngüler
Aralıklar ile For DöngüsüWhile DöngüsüBreakNextÖzet - FaktöriyelTimes DöngüsüUntil Döngüsüİç İçe DöngülerÖzet - Dinamik Girdi3Operatörler Bölüm 1
Aritmetik OperatörlerModulo OperatörüAritmetik KısayollarÖzet - Basit MatematikKarşılaştırma Operatörleri6Temel IO
puts ile Çıktı Almaprint ve p ile Çıktı AlmaDeğişkenlerle Çıktı Almagets ile Girdi AlmaChomp MetoduTip DönüşümüÖzet - Yaş HesaplayıcıÖzet - Doğru mu Yanlış mı9Metotlar
Metot TanımlamaMetot ParametreleriDönüş DeğerleriÖzet - Sigma MetoduÖzet - Doğrulama MetoduVarsayılan Parametre Değerleri12Koleksiyonlar Üzerinde Yineleme
Each Yineleyicisiİndeks ile EachStringler Üzerinde YinelemeMap ve Collect15Günlük Gider Takipçisi
Projeye Genel BakışProgramdan Çıkış