Cara Menggunakan Case / Switch Statement di Ruby

Di sebagian besar bahasa komputer, kasus atau bersyarat (juga dikenal sebagai beralih) pernyataan membandingkan nilai suatu variabel dengan beberapa konstanta atau literal dan menjalankan path pertama dengan case yang cocok. Di Rubi, ini sedikit lebih fleksibel (dan kuat).

Alih-alih tes kesetaraan sederhana dilakukan, operator kasus kesetaraan digunakan, membuka pintu bagi banyak kegunaan baru.

Ada beberapa perbedaan dari bahasa lain. Di C, pernyataan switch adalah jenis pengganti untuk serangkaian jika dan kebagian pernyataan. Kasing secara teknis adalah label, dan beralih pernyataan akan masuk ke label yang cocok. Ini menunjukkan perilaku yang disebut "fallthrough," karena eksekusi tidak berhenti ketika mencapai label lain.

Ini biasanya dihindari dengan menggunakan pernyataan break, tetapi fallthrough kadang disengaja. Pernyataan kasus di Ruby, di sisi lain, dapat dilihat sebagai singkatan untuk serangkaian jika pernyataan. Tidak ada kesalahan, hanya kasus pencocokan pertama yang akan dieksekusi.

instagram viewer

Bentuk Dasar Pernyataan Kasus

Bentuk dasar dari pernyataan kasus adalah sebagai berikut.

Seperti yang Anda lihat, ini adalah sesuatu yang terstruktur seperti pernyataan kondisional if / else if / else. Nama (yang akan kami sebut nilai), dalam hal ini yang dimasukkan dari keyboard, dibandingkan dengan masing - masing kasus dari kapan klausa (yaitu kasus), dan yang pertama saat blok dengan case yang cocok akan dieksekusi. Jika tidak ada yang cocok, maka lain blok akan dieksekusi.

Yang menarik di sini adalah bagaimana nilainya dibandingkan dengan masing-masing kasus. Seperti disebutkan di atas, dalam C ++, dan bahasa sejenis C lainnya, perbandingan nilai sederhana digunakan. Di Ruby, operator kesetaraan kasus digunakan.

Ingat bahwa jenis sisi kiri dari operator kasus kesetaraan penting, dan kasing selalu sisi kiri. Jadi, untuk masing-masing kapan klausa, Ruby akan mengevaluasi nilai kasus sampai menemukan kecocokan.

Jika kita memasukkan Bob, Ruby akan mengevaluasi terlebih dahulu "Alice" "Bob", yang akan menjadi salah sejak itu Tali# didefinisikan sebagai perbandingan string. Lanjut, /[qrz[.+/i "Bob" akan dieksekusi, yang salah sejak itu Bob tidak dimulai dengan Q, R atau Z.

Karena tidak ada kasus yang cocok, Ruby kemudian akan menjalankan klausa yang lain.

Bagaimana Type Datang Ke Play

Penggunaan umum dari pernyataan kasus adalah untuk menentukan jenis nilai dan melakukan sesuatu yang berbeda tergantung pada jenisnya. Meskipun ini mematahkan kebiasaan mengetik bebek Ruby, terkadang perlu dilakukan.

Ini berfungsi dengan menggunakan Kelas# (secara teknis, Modul#) operator, yang menguji jika sisi kanan adalah? sisi kiri.

Sintaksnya sederhana dan elegan:

Kemungkinan Bentuk Lain

Jika nilai dihilangkan, pernyataan kasus bekerja sedikit berbeda: ia bekerja hampir persis seperti pernyataan if / else if / else. Keuntungan menggunakan pernyataan kasus atas suatujika Pernyataan, dalam hal ini, hanyalah kosmetik.

Sintaks yang Lebih Ringkas

Ada kalanya ada sejumlah besar kecil kapan klausa. Pernyataan kasus seperti itu dengan mudah tumbuh terlalu besar untuk muat di layar. Ketika hal ini terjadi (tidak ada permainan kata-kata yang dimaksudkan), Anda dapat menggunakan kemudian kata kunci untuk meletakkan tubuh kapan klausa pada baris yang sama.

Sementara ini membuat beberapa kode yang sangat padat, asalkan masing-masing kapan klausa ini sangat mirip, sebenarnya menjadi lebih dapat dibaca

Ketika Anda harus menggunakan satu-baris dan banyak-baris ketika klausa terserah Anda, itu masalah gaya. Namun, mencampur keduanya tidak dianjurkan - pernyataan kasus harus mengikuti pola agar dapat dibaca.

Penugasan Kasus

Seperti pernyataan if, pernyataan kasus mengevaluasi pernyataan terakhir di kapan ayat. Dengan kata lain, mereka dapat digunakan dalam tugas untuk menyediakan semacam tabel. Namun, jangan lupa bahwa pernyataan kasus jauh lebih kuat daripada array sederhana atau pencarian hash. Tabel seperti itu tidak perlu menggunakan literal di kapan klausa.

Jika tidak ada kecocokan saat klausa dan tidak ada klausa lain, maka pernyataan kasus akan dievaluasi nol.