Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/347.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_If Statement_Conditional Statements - Fatal编程技术网

Java If/Else多个条件

Java If/Else多个条件,java,if-statement,conditional-statements,Java,If Statement,Conditional Statements,我在Java中使用带有多个条件的If/Else语句。最初,我有8个嵌套的if语句,但将它们组合成一个if和多个&&连接器。必须通过所有条件才能显示列出的结果。如果任何一个条件失败,else语句必须通过。我认为我已经正确地构造了我的块,但是在测试期间,所需的结果不能正常工作。例如,我更改了ageCustInt,使其失败并显示“不兼容”。这非常有效,然后我将ageCustInt改回了应该过去的年龄,但我仍然感到“不兼容”。我已经检查了其他每个条件,它们都通过了。我的代码是否结构不正确?我简直找不到为

我在Java中使用带有多个条件的If/Else语句。最初,我有8个嵌套的if语句,但将它们组合成一个if和多个&&连接器。必须通过所有条件才能显示列出的结果。如果任何一个条件失败,else语句必须通过。我认为我已经正确地构造了我的块,但是在测试期间,所需的结果不能正常工作。例如,我更改了ageCustInt,使其失败并显示“不兼容”。这非常有效,然后我将ageCustInt改回了应该过去的年龄,但我仍然感到“不兼容”。我已经检查了其他每个条件,它们都通过了。我的代码是否结构不正确?我简直找不到为什么我得不到正确的结果

if (ageCustInt >= ageMinComp1Int && ageCustInt <= ageMaxComp1Int &&
            adtV1MileageCustInt >= adtVMileageMinComp1Int && adtV2MileageCustInt >= adtVMileageMinComp1Int && adtV3MileageCustInt >= adtVMileageMinComp1Int &&
            adtV1MileageCustInt <= adtVMileageMaxComp1Int && adtV2MileageCustInt <= adtVMileageMaxComp1Int && adtV3MileageCustInt <= adtVMileageMaxComp1Int &&
            totalViolationsCustInt >= totalViolationsMinComp1Int && totalViolationsCustInt <= totalViolationsMaxComp1Int &&
            totalAdtDriversCustInt >= adtDriversMinComp1Int && totalAdtDriversCustInt <= adtDriversMaxComp1Int &&
            bodilyInjuryCust.equals(bodilyInjuryComp1) &&
            propDamageCust.equals(propDamageComp1) &&
            unUiBodilyCust.equals(unUiBodilyComp1))
                    {
                    btnComp1.setVisible(true);
                    lblPriceComp1.setText("$ " + price1String);
                    lblPriceComp1.setVisible(true);
                    }               
        else
        {
            lblPriceComp1.setText("Not Competitive");
        }
如果(ageCustInt>=AGEMINCOMPINT&&ageCustInt=ADTVMILEAGEMINCOMPINT&&adtV2MileageCustInt>=ADTVMILEAGEMINCOMPINT&&adtV3MileageCustInt>=ADTVMILEAGEMINCOMPINT&&

adtv1mileagecustin使其平坦化的一种方法是引入一种带有短路返回语句的方法

boolean check(args)
{
    if(expr1) 
        return false;
    if(expr2) 
        return false;
    ...
    return true;
} 
我们也可以用本地块来实现

boolean b=false;
check:
{
    if(expr1)
        break check;
    if(expr2)
        break check;
    ...
    b = true;
}

if(b) 
    ...
else
    ...
带lambda表达式

Supplier<Boolean> check = ()->
{
    if(expr1) 
        return false;
    if(expr2) 
        return false;
    ...
    return true;
}

if(check.get()) ...
供应商检查=()->
{
if(expr1)
返回false;
如果(expr2)
返回false;
...
返回true;
}
如果(check.get())。。。

这是几乎不可能调试的,建议你应该考虑一个激进的重新设计。你能告诉我们你认为你需要什么吗?看起来你也在把模型和视图代码混合在一起,一个你应该强烈考虑的重排就是把它们分开——创建一个反映底层状态的模型。系统,即尽可能不依赖视图的系统,它在Swing GUI中的工作应该与在控制台程序或Android程序中的工作一样好。这看起来真的像是您要维护的代码吗?提供的信息不足以进行调试。此外,您为什么要使用这样的代码?将其重新定义为更简单、更容易的代码不是很容易吗?我没有详细的说明我不知道如何使这段代码更简单。我需要一些用户输入的数据来通过所有这些条件,或者在任何条件不满足时失败。我可以提供什么更多的信息来帮助调试更容易?我希望您理解“兼容”和“竞争”单词的含义完全不同吗?无论如何,我看不出你的代码有任何错误,因此如果它给出了错误的结果,要么是其中一段数据不是你所认为的,要么是
equals
方法的问题。因为我们看不到其中任何一个,我认为除了h之外,我们没有什么可以帮助的帮助你简化代码。但是我们不能帮你发现问题。