Tôi đã đọc Tại sao chúng ta phải sử dụng break
trong switch
? và điều đó khiến tôi băn khoăn tại sao việc bỏ qua ngầm được cho phép trong một số ngôn ngữ (như PHP và JavaScript), trong khi không có hỗ trợ (AFAIK) cho thông qua rõ ràng.
Nó không giống như một từ khóa mới sẽ cần phải được tạo ra, như continue
là hoàn toàn phù hợp, và sẽ giải quyết bất kỳ vấn đề mơ hồ nào cho dù tác giả có ý định cho một trường hợp thông qua.
Biểu mẫu hiện được hỗ trợ là:
switch (s) {
case 1:
...
break;
case 2:
... //ambiguous, was break forgotten?
case 3:
...
break;
default:
...
break;
}
Trong khi đó, nó sẽ có ý nghĩa đối với nó được viết là:
switch (s) {
case 1:
...
break;
case 2:
...
continue; //unambiguous, the author was explicit
case 3:
...
break;
default:
...
break;
}
Đối với mục đích của câu hỏi này, hãy bỏ qua vấn đề liệu có hay không thông qua một phong cách mã hóa tốt.
Có ngôn ngữ nào tồn tại cho phép thông qua và đã làm cho nó rõ ràng không?
Có bất kỳ lý do lịch sử nào switch
cho phép rơi vào ẩn thay vì rõ ràng không?
goto case
C #.
goto case
, như pdr đề cập.
goto case
, vì vậy tiền đề của câu hỏi của bạn là một chút sai.