У меня есть серия из 8 «нокаутов», если заявления, которые должны пройти, чтобы показать соответствующий ответ. Если какой-либо из этих 8-ти утверждений не выполнен, отображается соответствующий ответ. Ниже мой код ...Java Вложенные If/Else Условные
if (ageCustInt >= ageMinComp1Int && ageCustInt <= ageMaxComp1Int){
if(adtV1MileageCustInt >= adtVMileageMinComp1Int && adtV2MileageCustInt >= adtVMileageMinComp1Int && adtV3MileageCustInt >= adtVMileageMinComp1Int &&
adtV1MileageCustInt <= adtVMileageMaxComp1Int && adtV2MileageCustInt <= adtVMileageMaxComp1Int && adtV3MileageCustInt <= adtVMileageMaxComp1Int)
if(totalViolationsCustInt >= totalViolationsMinComp1Int && totalViolationsCustInt <= totalViolationsMaxComp1Int)
if(totalAdtDriversCustInt >= adtDriversMinComp1Int && totalAdtDriversCustInt <= adtDriversMaxComp1Int)
if(bodilyInjuryCust.equals(bodilyInjuryComp1))
if(propDamageCust.equals(propDamageComp1))
if(currentInsur.equals(presInsurKOComp1) || presInsurKOComp1.equals("Both"))
if(unUiBodilyCust.equals(unUiBodilyComp1))
{
btnComp1.setVisible(true);
lblPriceComp1.setText("$ " + price1String);
lblPriceComp1.setVisible(true);
}
} else
{
lblPriceComp1.setText("Not Competitive");
}
Я получаю в основном правильные результаты, но каждый сейчас, а затем соответствующий «не конкурентоспособны» результат от блока еще не отображается, как это должно быть. Мое предположение заключается в том, что оператор else применяется только к самому первому оператору if, а если он передан, то блок else не выполняется. Мне нужно структурировать мои операторы if, чтобы, если ЛЮБЫЕ из операторов if не выполняются, блок else будет выполняться. Я пробовал реструктурировать свои блоки без успеха. Есть идеи?
Идея: не использовать так много вложенных IF ... – Andremoniy
Вместо того, чтобы вложить столько, если бы вы могли объединить все условия вместе с операторами (&&). –
Вытащите _все_ эти условия в одну функцию, скованную вместе с '&&'. Используйте один маленький, если. –