Здравствуйте, xobotik, Вы писали:
X>Здравствуйте, _hum_, Вы писали:
__>>"case" — переводится как "случай", и естественная человеческая семантика подразумевает "в случае, если значение в switch совпадает cо значением случая, выполнить то, что стоит после воеточия". а на деле же:
__>>__>>switch(3)
__>>{
__>> case 1: // пропускает, ибо 1 != 3
__>> case 2: // пропускает, ибо 2 != 3
__>> case 3: // входит, ибо 3 == 3
__>> case 4: // wtf?? 4!=3, а он все равно входит
__>> case 5: // wtf?? 5!=3, а он все равно входит
__>>};
__>>
__>>и именно потому, что семантика не естественная: case на самом деле означает не предусловие, а метку, куда должен перейти поток управления из точки switch.
X>Семантика в отрыве от break; конечно будет не естественная, да и пример switch, который Вы написали, не часто встречается на практике.
так поэтому я и обратил на эту штуку внимание только сейчас, после долгих лет знакомства, ибо всегда и всюду автоматом включался break, который делал семантику естественной. а тут решил сэкономить в угоду читабельности, и на тебе — "все, что вы знали о switch — неправда"

. потому и предупреждаю других граждан