0

这似乎很基本,但我需要添加数字,无论它们是否“开启”(我可能会将其更改为布尔值)。所以我的问题是如果可能的话,如何在 C 代码中做到这一点。我尝试了这种类型的东西和各种演绎:

    dfTotalTaxOwed[nIndex] = dfFedTaxOwed[nIndex]   + if(arrNYStateTaxStatus[nIndex] == 1){dfNYStateTaxOwed[nIndex];}
                                                + if(arrNDStateTaxStatus[nIndex] == 1){dfNDStateTaxOwed[nIndex];}
                                                + if(arrNHStateTaxStatus[nIndex] == 1){dfNHStateTaxOwed[nIndex];}
                                                + if(arrOHStateTaxStatus[nIndex] == 1){dfOHStateTaxOwed[nIndex];}
                                                + if(arrPAStateTaxStatus[nIndex] == 1){dfPAStateTaxOwed[nIndex];}
                                                + if(arrNJStateTaxStatus[nIndex] == 1){dfNJStateTaxOwed[nIndex];}
                                                + dfFicaTaxOwed[nIndex];    

谢谢

4

2 回答 2

1

您可以使用三元运算符

expr ? true value : false value

即替换if(arrNYStateTaxStatus[nIndex] == 1){dfNYStateTaxOwed[nIndex];}(arrNYStateTaxStatus[nIndex] == 1) ? dfNYStateTaxOwed[nIndex] : 0.

附带说明一下,您可能需要考虑重新设计程序以使用字典,而不是为每个状态使用一个数组。

于 2013-10-06T06:25:11.877 回答
0

C 控制语句没有返回值,因此这种方法不起作用。您是否有理由不想执行一系列 if 语句,例如

if(arrNYStateTaxStatus[nIndex] == 1) {
    dfTotalTaxOwed[nIndex] += dfNYStateTaxOwed[nIndex];
}

?

于 2013-10-06T06:33:40.767 回答