Saya sedang membaca Mengapa kita harus menggunakan break
di switch
? , dan itu membuat saya bertanya-tanya mengapa fall-through implisit diizinkan dalam beberapa bahasa (seperti PHP dan JavaScript), sementara tidak ada dukungan (AFAIK) untuk fall-through eksplisit.
Ini tidak seperti kata kunci baru yang perlu dibuat, karena continue
akan sangat tepat, dan akan menyelesaikan masalah ambiguitas untuk apakah penulis bermaksud untuk menyelesaikan kasus.
Formulir yang saat ini didukung adalah:
switch (s) {
case 1:
...
break;
case 2:
... //ambiguous, was break forgotten?
case 3:
...
break;
default:
...
break;
}
Sedangkan akan masuk akal untuk ditulis sebagai:
switch (s) {
case 1:
...
break;
case 2:
...
continue; //unambiguous, the author was explicit
case 3:
...
break;
default:
...
break;
}
Untuk keperluan pertanyaan ini, mari kita abaikan masalah apakah fall-throughs adalah gaya pengkodean yang baik atau tidak.
Apakah ada bahasa yang ada yang memungkinkan fall-through dan membuatnya eksplisit?
Apakah ada alasan historis yang switch
memungkinkan kejatuhan tersirat alih-alih eksplisit?
goto case
di C #.
goto case
, seperti disebutkan pdr.
goto case
, sehingga alasan pertanyaan Anda agak salah.