试图解决这个问题。我创建了一个方法来检查用户是否使用catch块输入了一个整数。
该方法显然要求返回语句,但无论我把它放在哪里它都不起作用。有人可以提供任何建议吗?
public class Week5 {
public static void main(String[] args) {
Scanner myKeyboard = new Scanner(System.in);
inputInt();
inputDouble();
}
public static int inputInt(){
Scanner myKeyboard = new Scanner(System.in);
System.out.println("Enter number:");
int num;
boolean carryOn = true;
while (carryOn == true) {
{
try {
num = myKeyboard.nextInt();
carryOn = false;
}
catch (Exception e) {System.out.println ("Integers only, try again" );
myKeyboard.next();
return num;
}
}
}
}
答案 0 :(得分:5)
当carryOn
== false时,它会转到方法的底部,那里没有返回语句。你需要在底部有一个return语句。
以下是对错误的解释:如果函数说它返回了某些内容(在这种情况下为int
),则意味着它可以采用的每个路径都必须返回int
。您错过了其中一个编译时错误的路径。