0

我需要它是一个 int 才能返回,但它一直在说

----jGRASP exec: javac -g CSCD210Lab8Functions.java

CSCD210Lab8Functions.java:118: incompatible types
found   : int
required: java.lang.String
      return finalExam;





 public static String readFinalScore(Scanner kb)
   {int finalExam;
      do{
         kb.nextLine();
         System.out.print("Enter the score of the final-->");
         finalExam = kb.nextInt();
         kb.nextLine();
         if (finalExam<0)
         {System.out.print("Invalid answer please try again " );}
      }while(finalExam<0);
      return finalExam;

我将它转换为一个 int 然后 kb.nextInt 不知道为什么它吓坏了

4

5 回答 5

1

int当它想要一个时,你会返回一个String

改变:

public static String readFinalScore(Scanner kb)

进入:

public static int readFinalScore(Scanner kb)
于 2013-10-28T04:17:15.747 回答
1

如果您打算将您的方法声明为 return String,java 不会自动将 an 转换int为 a String

return将您的声明更改为:

return String.valueOf(finalExam);

或者你也可以“作弊”:

return finalExam + "";

但是,如果你真的想返回一个int,那么像这样声明你的方法:

public static int readFinalScore(Scanner kb)

然后,您当前的方法代码将起作用。

于 2013-10-28T04:19:01.803 回答
1
public static String readFinalScore(Scanner kb) // return type String
{int finalExam; // finalExam is int
...
return finalExam;   // returning int value when it expects String

返回类型是String并且finalExam是int。

改成

public static int readFinalScore(Scanner kb)
于 2013-10-28T04:20:04.793 回答
0

您的退货声明不正确。您应该更改为int而不是String.

public static int readFinalScore(Scanner kb)

   return finalExam ;
}
于 2013-10-28T04:20:42.450 回答
0

您的退货声明不匹配..

所以你可以使用Integer.toString(finalExam)返回字符串类型

希望能帮助到你..

于 2013-10-28T04:22:03.083 回答