如何将switch-case语句更改为if-else语句

时间:2009-11-10 05:30:00

标签: c++

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";
}

8 个答案:

答案 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) {
//
}
这有助于您获得更多的数学专业知识,而不仅仅是检查是否相等。