2013-10-17 108 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))