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

incompatible types: void cannot be converted to int

我对 Java 和一般编程都非常陌生。我正在尝试创建一个简单的程序,您可以在其中猜测我的年龄,如果您猜对了,它会说 "correct",如果您猜错了,它会说 "wrong".

这是我的代码:

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....");
        }
    }
}

我收到错误 "incompatible types: void cannot be converted to int" 但代码中没有 void class?我知道我的代码可能很糟糕,但如果你们能指出我正确的方向,那就太好了。谢谢。

您的程序不必 return int in public static int main。相反,您可以将其设置为 void(意思是不要 return 任何东西)。您应该只打印您的声明,而不是 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....");
    }
}

}

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

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

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