Я пытаюсь изучить основы Java, когда мне нечего делать на работе, и я хотел поиграть с помощью ввода. Это то, что я сейчас:Повторите метод из «if» до тех пор, пока не будет введено правильное значение для возврата.
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, что он может вернуться)
Просто FYI слово вы ищете является 'recursion' – jackdh
Ваша логика в обратном направлении: сначала проверьте 'hasNextDouble', затем вызовите' nextDouble', если 'hasNextDouble' истинно. –