Спам-сообщение при вводе символа или числа с точкой - PullRequest
0 голосов
/ 09 марта 2020

Мне нужно, чтобы вход был только с плавающей точкой. Когда я ввожу символ, строку или число с точкой (100,96 вместо 100,96), программа спамит сообщения. Я добавил .hasNextFloat (), но ничего не изменилось. Любое предложение? Спасибо.

boolean prosegui = false;
while (!prosegui) {
    System.out.print("Digitare il proprio saldo in euro (€): ");
    // Se si vuole inserire un saldo che comprende i decimali bisogna utilizzare la virgola.
    if (scanner.hasNextFloat()) {
        saldo = scanner.nextFloat();
        if (saldo > 0) {
            prosegui = true;
        } else
            System.out.println("Il proprio saldo non può essere pari o inferiore a €0.");
    } else {
        System.out.println("Il saldo immesso non è valido.");
        System.out.println("Immettere un saldo valido.");
    }
}

1 Ответ

1 голос
/ 09 марта 2020

Когда вы вводите что-то, что не может быть преобразовано в плавающее, вы получаете правильные исключения. Вы можете поймать их:

boolean prosegui = false;
while (!prosegui) 
{
    System.out.print("Digitare il proprio saldo in euro (€): ");
    try
    {   
        saldo = scanner.nextFloat(); 
        if (saldo > 0) 
        {
            prosegui = true;
        } 
        else
        {
            System.out.println("Il proprio saldo non può essere pari o inferiore a €0.");
        }   
    }
    catch (Exception e)
    {
        System.out.println("Il saldo immesso non è valido.");
        System.out.println("Immettere un saldo valido."); 
        scanner.nextLine(); // clear bad input
    }  
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...