【发布时间】:2015-12-21 13:52:54
【问题描述】:
当我在工作中无事可做时,我正在尝试学习 Java 的基础知识,并且想玩弄输入法。这就是我现在拥有的:
import java.util.Scanner;
public class Input {
private static Scanner input;
public static void main(String [] args){
String name = (askName());
double age = (askAge());
System.out.println("Your name is " + name + " and your age is " + age);
}
static String askName(){
System.out.print("What is your name?");
input = new Scanner(System.in);
//listens for strings
String name = input.next();
return name;
}
static double askAge(){
System.out.print("What is your age?");
input = new Scanner(System.in);
//listens for doubles
double age = input.nextDouble();
if (input.hasNextDouble()){
return age;
} else {
System.out.println("Please insert a number:");
askAge();}
}
}
这就是我得到的:
Exception in thread "main" java.lang.Error: Unresolved compilation problem:
This method must return a result of type double
at Input.askAge(Input.java:16)
at Input.main(Input.java:6)
我该怎么做才能强制用户输入一个整数(也就是说,我如何让该方法不断重复,直到它得到一个可以返回的 int?)
【问题讨论】:
-
仅供参考,您要查找的单词是
recursion -
你的逻辑倒退了:先检查
hasNextDouble,如果hasNextDouble为真,再调用nextDouble。
标签: java return java.util.scanner