Cel*_*tas 3 c++ switch-statement logical-operators
如果你有一个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;
}
Run Code Online (Sandbox Code Playgroud)
像这样:
switch (x)
{
case 5:
case 2:
cout << "here I am" << endl;
break;
}
Run Code Online (Sandbox Code Playgroud)
被称为"堕落".
只是要指出default在发布的代码中执行案例的原因是5 || 2is 1(true)的结果.如果您设置x为1已发布的代码,5 || 2则将执行该案例(请参阅http://ideone.com/zOI8Z).
让它落空:
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;
}
Run Code Online (Sandbox Code Playgroud)
5 || 2顺便说一句,评估为1(或者true,因为它是一个逻辑表达式),你可以尝试它.
| 归档时间: |
|
| 查看次数: |
9084 次 |
| 最近记录: |