Menu
Coddy logo textTech

Özet - Güvenli Hesap Makinesi

Coddy'nin Ruby Journey'sinin Mantık ve Akış bölümünün bir parçası — ders 47 / 56.

raise, birden fazla rescue ifadesi ve ensure yapısını birleştirerek, hatalı girişlere karşı dayanıklı küçük bir hesap makinesi oluşturun.

challenge icon

Görev

Orta

Şunları yapan bir calc(a, op, b) metodu tanımlayın:

  • Eğer op; +, -, *, / operatörlerinden biri değilse, "unknown operator" mesajıyla bir ArgumentError hatası fırlatır
  • Aksi takdirde işlemi gerçekleştirir (/ için tam sayı aritmetiği kullanın)

Ardından girdiden a, op, b şeklinde üç satır okuyun ve calc metodunu bir begin / rescue / ensure bloğu içinde çağırın:

  • Başarılı olduğunda, <a> <op> <b> = <result> yazdırın
  • ArgumentError durumunda, Bad operator yazdırın
  • ZeroDivisionError durumunda, Cannot divide by zero yazdırın
  • ensure bloğunda, her zaman --- end --- yazdırın

a ve b değerlerini ayrıştırmak için aynı begin bloğu içinde Integer(...) kullanın; böylece tam sayı olmayan girdiler de Bad operator sonucunu verir (ArgumentError her iki durumu da kapsar).

6 / * / 7 girdisi için çıktı şöyledir:

6 * 7 = 42
--- end ---

10 / / / 0 girdisi için:

Cannot divide by zero
--- end ---

Kendin dene

# YAPILACAK: calc(a, op, b) tanımlayın, bilinmeyen op durumunda ArgumentError hatası fırlatır

raw_a = gets.chomp
op    = gets.chomp
raw_b = gets.chomp

# YAPILACAK: açıklandığı gibi begin/rescue/ensure kullanın

Mantık ve Akış bölümündeki tüm dersler