'break' statement when using curly braces in switch-case 'break' statement when using curly braces in switch-case c c

'break' statement when using curly braces in switch-case


Just a give a slightly more detailed answer...

The official C99 specification says the following about the break statement:

A break statement terminates execution of the smallest enclosing switch or iteration statement.

So it really doesn't matter. As for me, I put the break inside the curly braces. Since you can also have breaks in other places inside your curly braces, it's more logical to also have the ending break inside the braces. Kind of like the return statement.


There's tons of different coding styles of how to combine curly braces and switches. I'll use the one I prefer in the examples. The break statement breaks out of the innermost loop or switch statement, regardless of location. You could for example have multiple breaks for a single case:

switch (foo) {case 1:    {        if (bar)            break;        bar = 1;        ...    }    break;}

Note that you can also put the cases anywhere, though that is somewhat considered bad practice. The case label is very much like a goto label. It has happened that I've written something like this:

switch (foo) {case 1:    bar = 1;    if (0) {case 2:        bar = 2;    }    ...    break;}

but use it with care.