Всегда полагал, что семантика switch/case/case/... аналогична if/if/if/... без break-а и if/else if/else if/... c break-ом. А тут решил не ставить break "в конце ветки выбора", и опля — сюрприз. Так что, товарищи, кто еще так же, как и я, заблуждался, будьте внимательны:
switch(1)
{
case 1 : cout << '1'; // prints "1",
case 2 : cout << '2'; // then prints "2"
}
switch(1)
{
case 1 : cout << '1'; break; // prints "1" and exits the switch
case 2 : cout << '2'; break;
}
p.s. Вопрос к знатокам — зачем такая неочевидная и "техническая" семантика?