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.
Tantangan
SedangDefinisikan method calc(a, op, b) yang:
- Memunculkan
ArgumentErrordengan pesan"unknown operator"jikaopbukan 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, cetakBad operator - Jika terjadi
ZeroDivisionError, cetakCannot 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
1Mendalami String
Ringkasan Method StringInterpolasi StringMenelusuri StringMemisahkan dan MenggabungkanRekap: Perangkai String4Block, Proc, dan Lambda
Apa Itu Block?do..end vs Kurung KurawalKata Kunci yieldParameter BlockProc dan LambdaRangkuman, Iterator Kustom5Andalan Enumerable
Select dan RejectMerangkai MapReduce / Injectcount, all?, any?, none?group_by dan partitionsort_by, min_by, max_byRekap: Alur Data8Pengambilan Keputusan Lanjutan
Case dengan class & regexwhen dengan Banyak NilaiOperator Ternaryif / unless SebarisUlasan, Pengklasifikasi Nilai3Array 2D
Dasar Array 2DMengakses Elemen Array 2DMenelusuri Array 2DPola Umum Array 2DRekap: Operasi Matriks6Proyek: Pengelola Perpustakaan
Ikhtisar ProyekTambahkan Buku9Penanganan error
Apa Itu Exception?begin / rescueBeberapa Klausa rescueensure dan raiseRingkasan, Kalkulator AmanLatihan sendiri: Compiler Ruby online