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 default case.
#include <iostream>
using namespace std;
int main()
{
int x = 5;
switch(x)
{
case 5 || 2:
cout << "here I am" << endl;
break;
default:
cout << "no go" << endl;
}
return 0;
}
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).
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.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With