switch文に指定する文は、ブロックでなくてもよい。 int main() { // OK switch(0) ; // OK switch(0) default : std::cout << "hello" << std::endl ; } もちろん、ラベル文がたったのひとつしか書けないので、実用上の意味はない。ブロックでなくてもいいとは知らなかった。てっきり、ブロックを指定するものだと思っていた。知らなかった。まあ、知っていても、全く役に立たない知識ではある。 追記:コメントを素直に実装するとこうなる void f( int const value ) { int i = 0 ; switch( value ) for ( ; i != 10 ; ++i ) { case 1 : case 2 : std::cout << "value is 1 or 2" << std::endl