这是费率
0-20 units = 80
21-30 units = 2
31-40 units = 3
41-50 units = 5
51 or above = per unit 10
请帮帮我,我无法弄清楚如何解决这个问题?
我可以使用if else语句执行此操作但是如何处理三元运算符?我的老师让我用三元运算符来做这件事。
答案 0 :(得分:1)
可能有一些临时候选人:
units < 21 ? 80 : units < 31 ? 2 : units < 41 ? 3 : units < 51 ? 5 : units * 10
但这真的很难看。
答案 1 :(得分:1)
您必须添加嵌套的三元组。这意味着您的代码应如下所示:
int rate = (units >= 0 && units <= 20) ? 80 : (units >=21 && units <= 30) ? 2 : (units >=31 && units <= 40) ? 3 : (units >= 41 && units <=50) ? 5 : 10
但是,如上所述,这非常丑陋且难以阅读。所以,如果您有选择,请使用else if pattern
答案 2 :(得分:0)
更新:最好的方法是使用 else-if 梯形图,因为java不支持带范围的切换案例 例如。
int units=0;
if(units<20&&units>0){
//do operation
}else if(units<31&&units>20){
//do operation
}else if(units<41&&units>30){
//do operation
}else if(units<51&&units>40){
//do operation
}else{
//do operation
}
答案 3 :(得分:0)
试试这个
if (units =< 20){
rate = 80;
} else if(units =< 30){
rate = 2;
} else if(units =< 40){
rate = 3;
} else if(units =< 50){
rate = 5;
} else {
rate = 10;
}
如果我正确地理解了问题,那么这将有效,如果这不是你的意思,让我知道,我可以改变这一点。
使用Ternary Operator
更新代码rate = (units <= 20) ? 80 : (units <= 30) ? 2 : (units <= 40) ? 3 : (units <= 50) ? 5 : 10;