2013-10-17 107 views
-1

當我嘗試此代碼:麻煩與布爾和if語句

public boolean eligibleForBonus(double salary) { 
    if(salary >=40000) { 
     return true; 
    } 
    else { 
     return false; 
    } 
    } 

@Override 
public String toString() { 
    if (eligibleForBonus()){ 
    return (code I want to return); 
    } 
    else { 
    return (code I want to return); 
    } 
    } 

我上(eligibleForBonus()),它說:「該方法eligibleForBonus(雙)在類型員工(類)錯誤不適用於參數()「。 我是編程新手,我嘗試了所有我能想到的東西,但我無法做到 - 任何幫助將不勝感激!謝謝:)

+1

您的方法'eligibleForBonus'需要一個參數,並且在調用它時不發送任何消息。 –

+0

您的'eligibleForBonus'方法可以簡單地爲:'return salaray> 40000;' – Cruncher

回答

5

eligibleForBonus()需要double類型的參數,你在這裏宣佈

public boolean eligibleForBonus(double salary) {} 
+0

謝謝,這真的有幫助:)但是,我沒有輸入任何參數似乎工作 – Student94

+0

@Nelly您是否傳遞'int'?你可能已經把'.0'放到了Java的末尾,以便將它識別爲'double'。或'(double)myInt' – Cruncher

+0

_no參數我輸入似乎work_請擴展 –

0

你必須給eligibleForBonus一個參數

例如

0

你的方法eligibleForBonus(double salary)預計double類型的參數,但在此 if (eligibleForBonus()){你只是調用此方法不帶任何參數 你需要傳遞的參數在這個喜歡if (eligibleForBonus(1.2)){

0

你的方法eligibleForBonus需要一個參數(double salary)。在您的toString方法中,您正在調用該方法而不傳遞任何參數:if (eligibleForBonus())。這就是爲什麼它的弊端。通過有效的參數,例如:

if (eligibleForBonus (1000.0)) 
0

的方法eligibleForBonus(double salary)檢查,如果獎金可享有工資的基礎上。但是當你調用這個方法時,你不會「交出」薪水,因此你會得到一個例外。如果工資是例如2000,則使用 if(elibibleForBonus(2000))