避免在C中使用多个嵌套的if语句

时间:2015-12-02 03:28:16

标签: c if-statement for-loop

我正在考虑避免在我的代码中出现嵌套的if语句。

for (i = 0; i < N; i++) {
  if(x & y != 0) {
     if(z & k ==  z) {
        if(w & ( (c || u) && f)) { 
            //  Do something with the checked condition
        }
      }
    }
 } 
             `

首先for循环然后在多个if语句中看起来很难看。此外,值x,y,z,k等形式为edgeBag [i] .edgeWeight,甚至大于宽度,因此看起来更难看。

我能想到的一种方法是使用变量来存储x,y,z等,然后使用if语句中的变量来检查条件。

 for (i = 0; i < N; i++) {
 a = x;
 b = y; 
 ...
   if(a & b != 0) {
       ...
          ...
           // .....
    }
  }

一开始我对此并不十分恼火,但一旦这种模式开始频繁发生就会令人讨厌。有没有办法避免这种模式。或者更好的说明方式。感谢。

1 个答案:

答案 0 :(得分:1)

怎么样:

for (i = 0; i < N; i++) {
  if(x & y == 0) continue;
  if(z & k != z) continue;
  if(!(w & ((c || u) && f))) continue;
  //  Do something with the checked condition
}

您也可以||将ifs放在一起。