Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/319.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java If-else语句不起作用_Java - Fatal编程技术网

Java If-else语句不起作用

Java If-else语句不起作用,java,Java,我试图根据随机生成的温度设置价格。但是,它只返回前两个选项$0.50和$0.55。我很确定它与&&语句有关,但我不完全确定它为什么不起作用 public static double GetPrice () { if (temp < 50) { price = 0.50; } else if (temp >= 50) { price = 0.55; } else if (temp >= 61

我试图根据随机生成的温度设置价格。但是,它只返回前两个选项$0.50和$0.55。我很确定它与&&语句有关,但我不完全确定它为什么不起作用

public static double GetPrice ()
{
    if (temp < 50)
    {
        price = 0.50;
    }
    else if (temp >= 50)
    {
        price = 0.55;
    }
    else if (temp >= 61 && temp <= 65)
    {
        price = 0.60;
    }
    else if (temp >= 66 && temp <= 70)
    {
        price = 0.65;
    }
    else if (temp >= 71 && temp <= 75)
    {
        price = 0.75;
    }
    else if (temp >= 76 && temp <= 80)
    {
        price = 0.80;
    }
    else if (temp >= 81 && temp <= 85)
    {
        price = 0.85;
    }
    else if (temp >= 86 && temp <= 90)
    {
        price = 0.90;
    }
    else if (temp > 90)
    {
        price = 1.00;
    }

    return price;
}
publicstaticdoublegetprice()
{
如果(温度<50)
{
价格=0.50;
}
否则,如果(温度>=50)
{
价格=0.55;
}
否则,如果(温度>=61&&temp=66&&temp=71&&temp=76&&temp=81&&temp=86&&temp=90)
{
价格=1.00;
}
退货价格;
}

因为前两个分支都是真的。

将前两个条件更改为

if (temp >=0 && temp < 50)
    {
        price = 0.50;
    }
    else if (temp >= 50 && temp < 61)
    {
        price = 0.55;
    }
如果(温度>=0&&temp<50)
{
价格=0.50;
}
否则,如果(温度>=50和温度<61)
{
价格=0.55;
}

查看if-else阶梯的开头

if (temp < 50)
{
    price = 0.50;
}
else if (temp >= 50)
{
    price = 0.55;
}
if(温度<50)
{
价格=0.50;
}
否则,如果(温度>=50)
{
价格=0.55;
}

第一种情况涵盖了温度低于50的所有情况。第二种情况包括温度大于或等于50的所有零件。这涵盖了所有可能值的集合,因此不会执行任何其他子句。

第一个else if没有temp的上限。
改变
如果(温度>=50)


否则如果(temp>=50&&temp<61)

您是否已通过代码进行调试?发生了什么,用什么输入?(学习如何自己诊断问题很重要…)前两个条件可以解决整个范围
(temp<50)
(temp>=50)
捕获您测试的所有内容。缺少类似的内容:
(temp>=50&&temp同样,您的代码质量很差,您总是重复相同的
else if(temp>=XY&&temp),如果您放置一个else if(temp>=50),您应该知道例如,值为65时,将始终在该条件下输入,并且一旦接受了IF条件,就不需要使用所有其他条件请记住,
ELSE
本质上等同于说
IF(以前的条件为false)
。如果else if语句的if部分的条件得到满足,但代码仍然没有执行,则可能意味着先前的检查已经得到满足。