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