Здравствуйте, BulatZiganshin, Вы писали:
BZ>Здравствуйте, _hum_, Вы писали:
__>>p.s. Вопрос к знатокам — зачем такая неочевидная и "техническая" семантика?
BZ>case 1: case 2: ....
"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.