不兼容的类型:void无法转换为int

时间:2015-02-25 21:12:56

标签: java class void

对于Java和编程而言,我是一个非常新的人。我想创建一个简单的程序,你猜你的年龄,如果你是对的,它会说"纠正"如果你错了,它会说"错误"。

这是我的代码:

import java.util.InputMismatchException;
import java.util.Scanner; // This will import just the Scanner class.

public class GuessAge {
    public static int main(int[] args) {
       System.out.println("\nWhat is David's Age?");
       Scanner userInputScanner = new Scanner(System.in);
       int age = userInputScanner.nextLine();



        int validInput = 20;
        if (validInput == 20) {
            return System.out.println("Correct!!");
        }
        else {
            return System.out.println("Wrong....");
        }
    }
}

我收到错误"不兼容的类型:void无法转换为int"但我的代码中没有void类?我知道我的代码可能很糟糕,但如果你们能指出我的方向很好的话。谢谢。

3 个答案:

答案 0 :(得分:8)

您的计划无需在int中返回public static int main。相反,你可以将它作为void(意思是不返回任何东西)。您只需打印您的语句,而不是return它们。另外,int[]应为String[]Scanner应检查nextInt(),如评论中所指出的那样!

import java.util.InputMismatchException;
import java.util.Scanner; // This will import just the Scanner class.

public class GuessAge {
public static void main(String[] args) {
   System.out.println("\nWhat is David's Age?");
   Scanner userInputScanner = new Scanner(System.in);
   int age = userInputScanner.nextInt();



    int validInput = 20;

    // typo in your code - compare to age
    if (validInput == age) {
        System.out.println("Correct!!");
    }
    else {
        System.out.println("Wrong....");
    }
}

}

答案 1 :(得分:3)

您正在尝试返回类型为System.out.println()的{​​{1}}。从void之前删除return语句,它们仍将打印。请注意,您无需在System.out.println()方法中指定返回值。

答案 2 :(得分:0)

在方法声明中,您有public static int main(int[] args)

static关键字后面的单词是返回类型,在这种情况下,您的声明要求main方法返回int。要解决这个问题,main应该有一个void返回类型,因为你只在main中打印而不返回int类型。