ผมอ่านทำไมเราต้องใช้break
ในswitch
? และทำให้ฉันสงสัยว่าทำไมอนุญาตให้ใช้งาน fall-through โดยนัยในบางภาษา (เช่น PHP และ JavaScript) ในขณะที่ไม่มีการสนับสนุน (AFAIK) สำหรับ fall-through อย่างชัดเจน
ไม่ใช่ว่าจะต้องสร้างคำหลักใหม่ขึ้นมาตามความcontinue
เหมาะสมอย่างสมบูรณ์และจะแก้ปัญหาความกำกวมไม่ว่าผู้เขียนจะมีความหมายต่อกรณีใดก็ตาม
แบบฟอร์มที่รองรับในปัจจุบันคือ:
switch (s) {
case 1:
...
break;
case 2:
... //ambiguous, was break forgotten?
case 3:
...
break;
default:
...
break;
}
ในขณะที่มันเหมาะสมที่จะเขียนเป็น:
switch (s) {
case 1:
...
break;
case 2:
...
continue; //unambiguous, the author was explicit
case 3:
...
break;
default:
...
break;
}
สำหรับวัตถุประสงค์ของคำถามนี้ให้ละเว้นปัญหาว่า fall-throughs เป็นรูปแบบการเข้ารหัสที่ดีหรือไม่
มีภาษาใดบ้างที่อนุญาตให้ล้มลงและทำให้ชัดเจน
มีเหตุผลทางประวัติศาสตร์ใดบ้างที่switch
ยอมให้มีการล้มโดยปริยายแทนที่จะชัดเจน
goto case
ใน C #
goto case
ดังที่พีดีเอกล่าวถึง
goto case
ดังนั้นหลักฐานของคำถามของคุณผิดเล็กน้อย