Java if - else返回错误“String无法转换为int”

时间:2016-01-10 14:39:36

标签: java if-statement

我想我可能完全破坏了我想要创建的方法的语法。该方法是更大的应用程序的一部分,该应用程序获取用户信息以制作发票。

出于任何原因我收到以下错误:

java:43: error: incompatible types: String cannot be converted to int

非常感谢任何帮助!

以下是我尝试过的最新版代码:

public static int inputmethod(String question){
    Scanner in=new Scanner(System.in);
    System.out.println ("Input " + question + ":");
    int s=in.nextInt();
    String x = "Wrong, value cannot be 0, please try again!";
    if (s==0) 
        return x;
    else 
        return s;
}

6 个答案:

答案 0 :(得分:1)

您不能返回两种不同的类型。您必须选择一个,例如String和update declaration。

答案 1 :(得分:0)

您的方法必须返回“int”,但在s == 0

时返回一个字符串

答案 2 :(得分:0)

您的方法签名为 GAC = new GoogleApiClient.Builder(act) .addApi(Drive.API) .addScope(Drive.SCOPE_FILE) .addScope(Drive.SCOPE_APPFOLDER) .addConnectionCallbacks(...) .addOnConnectionFailedListener(...) .... .setAccountName(email) .... .build(); ,这意味着您只能返回public static int inputmethod(String question)。您从方法(int)返回String以及导致错误的原因。

答案 3 :(得分:0)

你想要返回x,字符串,而不是整数。

如果您想要某种输入验证(不要让用户输入零),您可以将读数包装在循环中:

def recursive_fact(n):
    lookup = {0: 1}
    return lookup.get(n, n*recursive_fact(n-1))

答案 4 :(得分:0)

Java有类型,而不是像动态类型的javascript。如果你仔细看,你的功能装饰会回归' int'类型;因此,你绝对只需要返回一个' int'关于这个功能。

你应该输出一条消息或抛出一个例外:

public static int inputmethod(String question){

    Scanner in=new Scanner(System.in);
    System.out.println ("Input " + question + ":");
    int s=in.nextInt();
    String x = "Wrong, value cannot be 0, please try again!";
    if (s==0) {
        System.out.println(x);
        return 0;
    }
    else return s;
}

答案 5 :(得分:0)

感谢大家的帮助!

基本原因是因为该方法只能返回一个整数。因此输入评估需要一个while循环(以及代码的动态变化)。我最终使用的代码是Stefans。

感谢!!!!!