0-20 units = 80
21-30 units = 2
31-40 units = 3
41-50 units = 5
51 or above = per unit 10
請幫助我,我無法弄清楚如何解決這個問題呢?
我可以這樣做,如果其他語句,但如何處理三元運算符?我的老師讓我用三元操作符來做這件事。
0-20 units = 80
21-30 units = 2
31-40 units = 3
41-50 units = 5
51 or above = per unit 10
請幫助我,我無法弄清楚如何解決這個問題呢?
我可以這樣做,如果其他語句,但如何處理三元運算符?我的老師讓我用三元操作符來做這件事。
更新:最好的辦法是使用否則,如果梯子如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
}
可能與一些tenaries:
units < 21 ? 80 : units < 31 ? 2 : units < 41 ? 3 : units < 51 ? 5 : units * 10
,但是這真的是醜陋的。
試試這個
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;
'我的老師讓我用三元運算符來做這件事' – 2014-10-30 14:14:42
好吧,我會改變這一點。 – ChonBonStudios 2014-10-30 14:30:13
更新代碼,您必須添加嵌套ternaries。這意味着你的代碼應該是這樣的:
int rate = (units >= 0 && units <= 20) ? 80 : (units >=21 && units <= 30) ? 2 : (units >=31 && units <= 40) ? 3 : (units >= 41 && units <=50) ? 5 : 10
但是,如上所述,這是相當醜陋和難以閱讀。所以,如果你有選擇,使其與其他如果模式
if或case statement ... – brso05 2014-10-30 13:53:28
你有什麼嘗試?另外,對我來說,這似乎不是一個三元組的好地方(因爲我相信你通常將用法作爲基數加上一些乘數)。 – 2014-10-30 13:53:39
你應該發佈一些代碼,顯示你已經嘗試了什麼,以及你卡在哪裏。 – Khalid 2014-10-30 13:54:13