Java:整数声明中的参数列表错误

时间:2014-11-23 18:01:32

标签: java class methods int declaration

所以我在第18行收到错误,它描述了:

HelloWorld.java:18: error: method calcThirdChance in class HelloWorld cannot be applied to given    types;
     int t3 = calcThirdChance(t1+t2);
              ^
required: int,int
found: int
reason: actual and formal argument lists differ in length

这对我来说没什么意义,因为方法calcThirdChance返回单个int而我在该行中只声明一个int因此我不知道为什么它需要2个int,这据称是错误的原因。

public class HelloWorld{

 public static void main(String []args){

    System.out.println(simMin(70,80));
 }
 public static int calcThirdChance(int t1, int t2){
    int c;
     c = -1*(t1+t2);
    double finalsend;
     finalsend = Math.pow(2.71, c/100)*2;
    finalsend*=150;
     return (int)finalsend;
 }
 public static int simMin(int t1, int t2){
     int t3 = calcThirdChance(t1+t2);
     int total=t1+t2+t3;
     int play = 50;
     if(play<=t1){
         return t1;
     }
     else if(play<=t1+t2){
         return t2;
     }
     else{
         return t3;
     }

 }
}

3 个答案:

答案 0 :(得分:3)

calcThirdChance需要2个参数

int t3 = calcThirdChance(t1, t2); 

答案 1 :(得分:2)

您获得的错误与calcThirdChance的返回类型无关。

您正在向方法传递一个参数:

calcThirdChance(t1+t2);

你需要传递两个:

calcThirdChance(t1,t2);

顺便说一句,看到calcThirdChance(int t1, int t2)只需要它收到的参数的总和,你可以将它改为:

public static int calcThirdChance(int t)
{
    int c;
    c = -1*t;
    double finalsend;
    finalsend = Math.pow(2.71, c/100)*2;
    finalsend*=150;
    return (int)finalsend;
}

这会使电话calcThirdChance(t1+t2)有效。

答案 2 :(得分:2)

这个

calcThirdChance(t1+t2);

传递t1+t2(一个值)的结果,但您的方法需要两个。我想你想要

calcThirdChance(t1, t2); // <-- a comma