使用2 if -thens对4个常量进行排序

时间:2015-09-29 01:20:44

标签: java if-statement

我正试图想办法对这4个“成本”进行排序。 我的最终目标是在方法中没有两个相同的if-then语句,这个例子只是一个快速的模型。 我确信这是我丢失的简单代码。

int discount_InsideZone;
int discount_OutsideZone;
int insideZone;
int outsideZone;

static int something(boolean discounted, int startzone, int endzone)
{
/* if 
   discounted == true && startzone == endzone Return discount_InsideZone;
   discounted == true && startzone <> endzone Return discount_OutsideZone;
   discounted == false && startzone == endzone Return insideZone;
   discounted == false && startzone <> endzone Return outsideZone;
*/
}

3 个答案:

答案 0 :(得分:0)

这样的东西?

static int something(boolean discounted, int startzone, int endzone)
{
    if (startzone == endzone)
        return (discounted ? discount_InsideZone : insideZone);
    return (discounted ? discount_OutsideZone : outsideZone);
}

答案 1 :(得分:0)

您无需与==进行比较,只需在if声明中直接使用它们。

boolean inside = startzone == endzone;

if (discounted) {
    if (inside) return a;
    else return b;
}
else {
    if(inside) return c;
    else return d;
}

答案 2 :(得分:0)

由于javascript在这里被标记并且它只是一个模拟,请让我在javascript中模拟它。

var discount_InsideZone;
var discount_OutsideZone;
var insideZone;
var outsideZone;

function something(discounted, startzone, endzone) {
    if (discounted) {
        return startzone === endzone ? discount_InsideZone : discount_OutsizeZone;
    }
    return startzone === endzone ? insideZone : outsideZone;
}

不幸的是,这是我现在能想到的最好的。