2017-03-16 1 views
0

저는 Java에 매우 익숙하며 내 if 문은 변수에 값을 할당하지 않는 것 같습니다. 나는 정말로 약간의 도움에 감사 할 것이다. 출력은 보너스를 의미하는 if 문 마지막은 상관없이 1000로 설정됩니다 후 세미콜론이 항상 1000변수 값이 if 문에서 재생됩니다.

DecimalFormat df = new DecimalFormat("#.00"); 

    // Defines amount and bonus 
    double amount; 
    double bonus; 

    bonus = 0; 

    amount = Double.parseDouble(txtAmountEarnt.getText()); 

    if (amount <= 2000) { 
     bonus = 0; 
    } 
    if (amount >2499 && amount <5000) { 
     bonus = 500; 
    } 
    if (5000 < amount); { 
     bonus = 1000; 
    } 

    System.out.println(bonus); 
    lblBonusAwarded.setText("Bonus awarded for earning $" + (df.format(amount)) + " = $" + (df.format(bonus))); 
+0

그럼 전체 출력은 무엇입니까? –

+0

입력 및 해당 출력은 무엇입니까 –

+2

그리고 'amount'가 2001-2499 간격에 있다면 어떻게 될까요? –

답변

1

현재 코드 (중첩 if-else와) 하나 개 if 블록에 간단하게 할 수있다, 당신은 이미 0-bonus를 초기화 한 - 그래서 당신은 다시 그것을 명시 적으로 작업을 수행 할 필요가 없습니다.

// Defines amount and bonus 
double amount = Double.parseDouble(txtAmountEarnt.getText()); 
double bonus = 0; 
if (amount > 2499) { 
    if (amount > 5000) { 
     bonus = 1000; 
    } else { 
     bonus = 500; 
    } 
}