Menu
CoddyTech

Ringkasan, Kalkulator Aman

Termasuk bagian Logika dan Alur dalam perjalanan Ruby di Coddy. Pelajaran 47 dari 56.

Buat kalkulator kecil yang tetap berfungsi saat menerima input yang buruk dengan menggabungkan raise, beberapa klausa rescue, dan ensure.

challenge icon

Tantangan

Sedang

Definisikan method calc(a, op, b) yang:

  • Memunculkan ArgumentError dengan pesan "unknown operator" jika op bukan salah satu dari +, -, *, /
  • Melakukan operasi tersebut jika tidak (gunakan aritmetika bilangan bulat untuk /)

Lalu baca tiga baris dari input, a, op, b: dan panggil calc di dalam begin / rescue / ensure:

  • Jika berhasil, cetak <a> <op> <b> = <result>
  • Jika terjadi ArgumentError, cetak Bad operator
  • Jika terjadi ZeroDivisionError, cetak Cannot divide by zero
  • Di dalam ensure, selalu cetak --- end ---

Gunakan Integer(...) untuk mengurai a dan b, di dalam blok begin yang sama, sehingga input nonbilangan bulat juga menghasilkan Bad operator (ArgumentError mencakup keduanya).

Untuk input 6 / * / 7, outputnya adalah:

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

Untuk input 10 / / / 0:

Cannot divide by zero
--- end ---

Coba sendiri

# TODO: definisikan calc(a, op, b), yang memunculkan ArgumentError jika op tidak dikenal

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

# TODO: gunakan begin/rescue/ensure seperti yang dijelaskan

Semua pelajaran di Logika dan Alur

Latihan sendiri: Compiler Ruby online