If you have a switch statement and want certain code to be run when the value is one value or another how do you do it? The following code always goes to the defaul
case2:
case5:
//do things
break;
Make it fall through:
int main()
{
int x = 5;
switch(x)
{
case 5:
// there's no break statement here,
// so we fall through to 2
case 2:
cout << "here I am" << endl;
break;
default:
cout << "no go" << endl;
}
return 0;
}
5 || 2
, by the way, evaluates to 1 (or true
, as it is a logical expression), you can try it.
Let the switch
fall-through:
switch(x)
{
case 2:
case 5:
cout << "here I am" << endl;
break;
default:
cout << "no go" << endl;
}
Here is a really good read about switch/case and their slight difference between C/C++ and some other information about labels (ABCD:) you might like to know.
Like this:
switch (x)
{
case 5:
case 2:
cout << "here I am" << endl;
break;
}
Known as "falling through".
Just to point out that the reason the default
case is executed in the posted code is that the result of 5 || 2
is 1
(true
). If you set x
to 1
in the posted code the 5 || 2
case would be executed (see http://ideone.com/zOI8Z).