使用条件(三元)运算符计算电费的Java代码?

时间:2014-10-30 13:52:07

标签: java conditional-operator ternary

这是费率

0-20 units = 80 

21-30 units = 2

31-40 units = 3

41-50 units = 5

51 or above = per unit 10

请帮帮我,我无法弄清楚如何解决这个问题?

我可以使用if else语句执行此操作但是如何处理三元运算符?我的老师让我用三元运算符来做这件事。

4 个答案:

答案 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;