C++中的语句

Tem*_*lar 4 c++ if-statement

在C++中想写这样的东西

int Answer;
if (Answer == 1 || Answer == 8 || Answer == 10) 
Run Code Online (Sandbox Code Playgroud)

等等,是否可以在不重复变量的情况下缩短代码?

xan*_*tos 14

尝试:

 switch (Answer) {
     case 1:    // fall through
     case 8:    // fall through
     case 10:
         // ... do something
         break; // Only need if there are other case statements.
                // Leaving to help in mainenance.
 }
Run Code Online (Sandbox Code Playgroud)

  • @Marlon,这就是重点,答案是利用堕落...... (4认同)
  • :-)请记住,在C和C++中,案例条件必须是不变的! (2认同)

Joh*_*ohn 6

为了便于阅读,我将逻辑封装在描述性命名的函数中.例如,如果您的答案是具有特定颜色的事物,并且答案1,8和10是绿色事物,那么您可以将该逻辑写为

bool ChoiceIsGreen(int answer)
{
    return (answer == 1 || answer == 8 || answer == 10);
}
Run Code Online (Sandbox Code Playgroud)

然后你的功能变成了

if (ChoiceIsGreen(Answer))
{
    // offer some soylent green
}
Run Code Online (Sandbox Code Playgroud)

如果你有很多这样的选择,如果你有很多原始数据,我会发现它很难读.