Я прошу пользователя ввести 2 числа с плавающей запятой и нужно подтвердить, правильно ли пользователь ввел 2 числа с плавающей запятой. Я использую «Сканер» для чтения ввода пользователя и использую «.hasNextFloat ()» для проверки, является ли ввод пользователя плавающим или нет. Мои коды как ниже. Но я обнаружил, что написанные мной коды будут проверять только первый ввод пользователя при первом запуске do.. while l oop, поэтому, если ввод пользователя (символ + с плавающей запятой), коды могут дать правильный результат. Но если пользовательский ввод (float + символ), то он обработает sh, потому что он пропустит do.. while l oop и go непосредственно в firstN = readInput1.nextFloat () ; secondN = readInput1.nextFloat (); Поэтому я хочу знать, как я могу проверить оба ввода, используя do ... while l oop. Спасибо!
public static void main(String[] args) {
System.out.printf("Welcome to Lucy's Get 2 Floats Program! \n\n");
Scanner readInput1 = new Scanner(System.in);
float firstN;
float secondN;
do
{
System.out.println("Please enter two floats separated by a space: ");
while(!readInput1.hasNextFloat()) {
System.out.println("You have entered an invalid choice. Please try again:");
readInput1.next();
readInput1.next();
}
} while(!readInput1.hasNextFloat());
firstN = readInput1.nextFloat();
secondN = readInput1.nextFloat();
System.out.printf("You have entered two valid floats: %5.2f and %5.2f", firstN, secondN);
}