除了在 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
子句,这就很有用。
条件将从左边计算,所以如果 cond1
为 false
,则 cond2
和 cond3
获胜'得到评估。
编辑:如果您有许多条件需要为真才能采取行动,并且您关心代码的可读性,我会首先将它们分组到一个 bool 变量中,即:
int isCar = has4Wheels && hasBreaks && hasEngine;
int isASportsCar = hasLargeEngine && hasLowSuspension && hasManualControls;
int isFerrari = isV12 && isRed && hasANiceLogo;
if (isCar && isASportsCar && isFerrari) {
// action
}
示例可能很愚蠢,但您明白了。