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

对于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类? 我知道我的代码可能很糟糕,但如果你们能指出我的方向很好的话。 谢谢。

您的程序不必在public static int main返回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...."); } } } 

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

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

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