c - 许多条件,减少代码大小

标签 c if-statement coding-style

<分区>

除了在 if 内部使用 if 分支来检查并满足所有要求的条件,还有其他好的解决方案吗?这样写代码看起来有点大,我想减少代码大小,但要满足我的需要。

if(a>0 && b>0 && c>0) 
{
    if(a==d && b==e && c==f)
    {
         if(a<FIELD_HEIGHT && b<FIELD_WIDTH)
         {
             if(true) 
             {

             }
         }
    }
}

最佳答案

您可以使用逻辑与运算符 (&&):

if (cond1 && cond2 && cond3) {
  // action
}

相当于:

if (cond1) {
  if (cond2) {
    if (cond3) {
      // action
    }
  }
}

只要您不需要特定于任何这些条件的 else 子句,这就很有用。

条件将从左边计算,所以如果 cond1false,则 cond2cond3 获胜'得到评估。


编辑:如果您有许多条件需要为真才能采取行动,并且您关心代码的可读性,我会首先将它们分组到一个 bool 变量中,即:

int isCar = has4Wheels && hasBreaks && hasEngine;
int isASportsCar = hasLargeEngine && hasLowSuspension && hasManualControls;
int isFerrari = isV12 && isRed && hasANiceLogo;

if (isCar && isASportsCar && isFerrari) {
  // action
}

示例可能很愚蠢,但您明白了。

关于c - 许多条件,减少代码大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31377859/

相关文章:

javascript - jQuery 隐藏所有没有类的元素

c# - 哪个更好,使用可为 null 或 bool return+out 参数

C 结构体,其中元素跨越字节边界并放置在下一个字节中

c++ - 未调用 QCoreApplication 析构函数

c - device_register 和 driver_register 的区别

c - 质数如果有错误

c - 接受输入数组并输出指向数组中所有偶数的指针的函数

if-statement - 条件如果和或在 Racket

javascript - 何时使用 which - 多个方法、多个参数或一个选项参数

ruby - 为什么要避免在 Ruby 中使用 then 关键字?