【发布时间】:2015-12-02 03:28:15
【问题描述】:
我正在考虑避免在我的代码中出现嵌套的 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) {
...
...
// .....
}
}
一开始我并没有对此感到非常恼火,但是一旦这种模式开始经常出现,它就很烦人。有什么办法可以避免这种模式。或者更好的方式来说明这一点。谢谢。
【问题讨论】:
-
还有
elses吗?为什么不只是((x) & (y) != 0) && ((z) & (k) == z) && ((w) & ( ((c) || (u)) && f))? -
如果你不使用这么多不必要的括号,它可能看起来不那么难看!
-
关键是 John x, y,z 等本质上很长,因此它看起来更糟,如果我使用变量来做它看起来不太可读。
-
() 用于表明它不仅仅是一个二进制数。
标签: c if-statement for-loop