int number;
cin>>number;
switch (number)
{
case 1:
cout<<"My Favourite Subject is";
break;
case 2:
cout<<"Fundamentals of Programming";
break;
case 3:
cout<<"Exit";
break;
default:
cout<<"Invalid Data";
}
答案 0 :(得分:4)
用if-else替换switch语句
if (number == 1)
{
}
else if (number == 2)
{
}
...
{
}
else
{
// default here
}
答案 1 :(得分:2)
//Hey this is fun!
int number;
cin>>number;
// ultra const!
static const char const * const table[] =
{
"Invalid Data",
"My Favourite Subject is",
"Fundamentals of Programming",
"Exit"
};
cout<<table[number&3];
//Who needs if statements!!?
答案 2 :(得分:1)
检查number
是否等于来自switch的第一个值,如果相等则输出文本,否则(else)检查下一个数字。
if ( number == /*put here value to check*/ )
// print some text
else
// do something else
答案 3 :(得分:1)
这是我最喜欢的,即使它不是你要求的:
string res =
number==1 ? "My Favourite Subject is" :
number==2 ? "Fundamentals of Programming" :
number==3 ? "Exit" :
number==4 ? "Invalid Data" :
"";
cout<<res;
这里的好处是你不必限制自己进行整数比较。您可以使用任何类型的complexComparisonReturningBoolean(number)代替number == 1。
答案 4 :(得分:1)
也只是为了好玩: 只需使用大写字母和分号代替冒号。啊,别忘了加一个邪恶的宏:))
#define SWITCH(s) for(int switch_=s, b=1;b;b=0) {
#define CASE(n) } if ( switch_ == n ) {
#define DEFAULT }
int number;
cin>>number;
SWITCH(number)
{
CASE(1);
cout << "My Favourite Subject is";
break;
CASE(2);
cout << "Fundamentals of Programming";
break;
CASE(3);
cout << "Exit";
break;
DEFAULT;
cout << "Invalid Data";
}
这会杀死'switch',如果不允许'for'循环,也可以使用BREAK宏,但它更加邪恶。
答案 5 :(得分:0)
用if语句替换case语句:
if (number == 1) {
cout<<"My Favourite Subject is";
} else if (number == 2) {
cout<<"Fundamentals of Programming";
} else if (number == 3) {
cout<<"Exit";
} else {
cout<<"Invalid Data";
}
答案 6 :(得分:0)
if (number == 1) {
cout << "blah1";
}
else if (number == 2) {
cout << "blah2";
}
else if (number == 3) {
cout << "blah3";
}
else {
cout << "default";
}
答案 7 :(得分:0)
尝试:
if (number < 1 || number > 3) {
这有助于您获得更多的数学专业知识,而不仅仅是检查是否相等。
//
} else if (number == 1) {
//
} else if (number/2 == 1) {
//
} else if ((number - 1)/ 2 == 1) {
//
}