如果你有一个switch语句,并希望在值为一个值或时运行某些代码,你会怎么做?以下代码始终为默认情况。
#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;
}
答案 0 :(得分:9)
像这样:
switch (x)
{
case 5:
case 2:
cout << "here I am" << endl;
break;
}
被称为“堕落”。
只是要指出default
案例在发布的代码中执行的原因是5 || 2
的结果是1
(true
)。如果您在发布的代码中将x
设置为1
,则会执行5 || 2
案例(请参阅http://ideone.com/zOI8Z)。
答案 1 :(得分:7)
让它落空:
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
的计算结果为1(或true
,因为它是一个逻辑表达式),你可以尝试一下。
答案 2 :(得分:3)
让switch
落实:
switch(x)
{
case 2:
case 5:
cout << "here I am" << endl;
break;
default:
cout << "no go" << endl;
}
答案 3 :(得分:1)
case2:
case5:
//do things
break;
答案 4 :(得分:1)
Here is a really good read关于switch / case以及它们在C / C ++和其他一些您可能想知道的标签信息(ABCD :)之间的细微差别。