As per the C11
standard, chapter §6.8.4.2, The switch
statement(emphasis mine)
[...] If a converted value matches that of the promoted controlling expression,
control jumps to the statement following the matched case
label. Otherwise, if there is
a default
label, control jumps to the labeled statement. If no converted case constant
expression matches and there is no default
label, no part of the switch body is
executed.
So basically, control goes past the entire switch
body.
For C++
, the logic is same. From C++11
, §6.4.2, Thanks to @Jack
If no case
matches and if there is no default
then none of the statements in the switch
is executed.