2013-02-26 35 views
-1

所以我想要計算國家保險,我使用3個IF語句。如果語句的功能在java

/does not work 
public double calculateNotContOut(){ 
    if (calculateWeeklyEarning()<upperEarningLevel){ 
     return (((calculateWeeklyEarning()-primaryThreshold)*primaryClassBetween)*52); 
    } 
    else { 
     return (((upperEarningLevel-primaryThreshold)*primaryClassBetween+(calculateWeeklyEarning()-upperEarningLevel)*primaryClassAbove)*52); 
    } 
} 
//does not work 
public double calculateContOut(){ 
    if (calculateWeeklyEarning()<upperEarningLevel){ 
     return (((calculateWeeklyEarning()-primaryThreshold)*calculateReducedContribution())*52); 
    } 
    else{ 
     return (((upperEarningLevel-primaryThreshold)*calculateReducedContribution()+(calculateWeeklyEarning()-upperEarningLevel)*primaryClassAbove)*52); 
    } 
} 

public double calculateNationalInsurance(){ 
    if (contractedOut){ 
     return (calculateContOut()); 
    } 
    else { 
     return (calculateNotContOut()); 
    } 
} 

它們不返回正確的值。有人可以幫忙嗎?

+1

什麼不行? – BobTheBuilder 2013-02-26 09:57:05

+0

以什麼方式不起作用? – 2013-02-26 10:00:35

+0

@ user2110669:爲了幫助您,我們至少需要知道您的方法定義以及變量的類型。另外,說「_他們不會返回正確的值_」並不是很具體。你的意見是什麼?你期望什麼產出(以及爲什麼)?實際輸出是多少? – jlordo 2013-02-26 10:00:42

回答

1

在Java中,如果條件僅處理Boolean類型或boolean前綴。的calculateWeeklyEarning()upperEarningLevel

makesure返回值是compariable

0

檢查是否正在被返回的calculateWeeklyEarning()小於或等於upperEarningLevel。 if語句沒有問題。