我想知道如何减少逻辑运算代码。

 int a;

 cin >> a;

 if( a == 1 || a == 3 || a == 5)
    printf("%d", a);


像这样修改上面的代码

 int a;

 cin >> a;

 if(a == (1 || 3 || 5) )
    printf("%d", a)


但是如您所知,它不起作用。

如何将该代码更改为更简单的形式?

最佳答案

我在@Beta上-您已经拥有最简单的表格。但是,如果添加更多“匹配”值,则可能会发现switch语句提供了更易于维护的结构:

int a;

cin >> a;

switch ( a )
{
   case 1:
   case 3:
   case 5:
        printf("%d", a);
        break;
     default:
        // do nothing - not needed, but good habit
  }


还有许多其他方法可以完成此操作-例如,您可以在a中查找set的成员身份(请参见this answer)。每个人都有其自己的优点,并且适合您的实际问题-“简单”是一个相对术语。

关于c++ - 逻辑运算:我想轻松进行逻辑运算,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32878241/

10-08 22:44