Я читав Чому ми повинні використовувати break
в switch
? , і це змусило мене замислитись про те, чому дозволено неявне проходження на деяких мовах (таких як PHP та JavaScript), поки немає підтримки (AFAIK) для явного проходу.
Це не так, як потрібно було б створити нове ключове слово, як це 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;
}
Для цілей цього питання дозволяємо ігнорувати питання про те, чи є прохідні файли хорошим стилем кодування чи ні.
Чи існують якісь мови, які дозволяють пропускати і роблять це явним?
Чи є якісь історичні причини, які switch
дозволяють мати неявне проходження замість явних?
goto case
в C #.
goto case
, як згадується pdr.
goto case
, тому передумова вашого питання трохи неправильна.