2014-10-30 183 views
-3

這裏是速度使用條件(三元)運算符計算電費的Java代碼?

0-20 units = 80 

21-30 units = 2 

31-40 units = 3 

41-50 units = 5 

51 or above = per unit 10 

請幫助我,我無法弄清楚如何解決這個問題呢?

我可以這樣做,如果其他語句,但如何處理三元運算符?我的老師讓我用三元操作符來做這件事。

+0

if或case statement ... – brso05 2014-10-30 13:53:28

+2

你有什麼嘗試?另外,對我來說,這似乎不是一個三元組的好地方(因爲我相信你通常將用法作爲基數加上一些乘數)。 – 2014-10-30 13:53:39

+0

你應該發佈一些代碼,顯示你已經嘗試了什麼,以及你卡在哪裏。 – Khalid 2014-10-30 13:54:13

回答

0

更新:最好的辦法是使用否則,如果梯子如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 
    } 
+1

必須將其添加爲註釋... – kirti 2014-10-30 13:56:25

+0

Groovy可以在switch語句中執行範圍 - 不是Java。 – BarrySW19 2014-10-30 13:58:20

+0

是想提高你的答案的質量 – kirti 2014-10-30 14:14:35

1

可能與一些tenaries:

units < 21 ? 80 : units < 31 ? 2 : units < 41 ? 3 : units < 51 ? 5 : units * 10 

,但是這真的是醜陋的。

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; 
} 

如果我理解正確的問題,那麼這將工作,如果這不是你讓我以後知道,我可以改變周圍的這一點。

使用三元運算符

rate = (units <= 20) ? 80 : (units <= 30) ? 2 : (units <= 40) ? 3 : (units <= 50) ? 5 : 10; 
+0

'我的老師讓我用三元運算符來做這件事' – 2014-10-30 14:14:42

+0

好吧,我會改變這一點。 – ChonBonStudios 2014-10-30 14:30:13

1

更新代碼,您必須添加嵌套ternaries。這意味着你的代碼應該是這樣的:

 int rate = (units >= 0 && units <= 20) ? 80 : (units >=21 && units <= 30) ? 2 : (units >=31 && units <= 40) ? 3 : (units >= 41 && units <=50) ? 5 : 10 

但是,如上所述,這是相當醜陋和難以閱讀。所以,如果你有選擇,使其與其他如果模式