Selama yang saya ingat, saya telah menghindari penggunaan fall-through pernyataan switch. Sebenarnya, saya tidak dapat mengingatnya pernah memasuki kesadaran saya sebagai cara yang mungkin untuk melakukan sesuatu karena sudah dibor di kepala saya sejak awal bahwa itu tidak lebih dari bug dalam pernyataan switch. Namun, hari ini saya menemukan beberapa kode yang menggunakannya dengan desain, yang membuat saya langsung bertanya-tanya apa yang dipikirkan semua orang di komunitas tentang fall-through pernyataan switch.
Apakah itu sesuatu yang seharusnya tidak diizinkan secara eksplisit oleh bahasa pemrograman (seperti C #, meskipun ia menyediakan solusi) atau apakah itu fitur dari bahasa apa pun yang cukup kuat untuk ditinggalkan di tangan programmer?
Sunting: Saya tidak cukup spesifik untuk apa yang saya maksud dengan fall-through. Saya sering menggunakan tipe ini:
switch(m_loadAnimSubCt){
case 0:
case 1:
// Do something
break;
case 2:
case 3:
case 4:
// Do something
break;
}
Namun, saya khawatir tentang hal seperti ini.
switch(m_loadAnimSubCt){
case 0:
case 1:
// Do something, but fall through to the other cases
// after doing it.
case 2:
case 3:
case 4:
// Do something else.
break;
}
Dengan cara ini setiap kali case adalah 0, 1 itu akan melakukan semua yang ada di pernyataan switch. Saya telah melihat ini dengan sengaja dan saya tidak tahu apakah saya setuju bahwa pernyataan sakelar harus digunakan dengan cara ini. Saya rasa contoh kode pertama ini sangat berguna dan aman. Yang kedua sepertinya berbahaya.