public int getCurrentRemainingCr() {
return (currentEarnedCr >= 120)?(REQUIRED_CR - currentEarnedCr):0;
我尝试使用三元运算符代替if-else ...基本上我的if-else暗示如果当前信用大于或等于120,则将cred设置为0。代码虽然仍然在junit中的测试方法中引起问题。
答案 0 :(得分:5)
你的错误方法是你的真假结果。
三元运算符是:
(something) = (condition) ? (value if true) : (value if false);
因此"如果当前信贷大于或等于120,则将剩余的债券设定为0"将完成:
return (currentEarnedCr >= 120) ? 0 : (REQUIRED_CR - currentEarnedCr);
答案 1 :(得分:0)
您必须更改订单
更改
return (currentEarnedCr >= 120)?(REQUIRED_CR - currentEarnedCr):0;
要
return (currentEarnedCr >= 120)?0:(REQUIRED_CR - currentEarnedCr);
为什么?
在Ternary Operator
result = someCondition ? value1 : value2;
如果someCondition
true
result
成为value1
,则result
成为value2