Niekończąca sie pętla

0

Witam, nie rozumiem dlaczego poniższy kod generuje niekończącą się pętlę. Czy ktoś mógłby napisać kilka słów wyjaśnienia?

import java.util.Scanner;

public class App {

    public static void main(String[] args) {

        int value = 0;

        try (Scanner input = new Scanner(System.in)){ // obiekt dokonuje rozbioru tekstu na leksemy, delimitację stanowi spacja

        while (value != 5){

            System.out.println("Enter the number '5':");

            if (input.hasNextInt()) {

                value = input.nextInt();
            }

            else {

                System.out.println("The value you entered is NOT a number.");
            }

        }

        System.out.println("Got it!");

        } catch (Exception e){

        }
        }

        }
0

Przecież dobrze działa.

Enter the number '5': 3 Enter the number '5': 2 Enter the number '5': 5 Got it!

0

wywal if-else i będzie działać, co prawda da niepoprawny komunikat :)
albo wsadź value przed ifa a w ifie sprawdź czy nextLine a nie nextInt jest liczbą i wtedy podaj komunikat

0

No tak, ale jak wpiszę literę to się zapętla.

0

mysle ze on nie umie angielskiego

0

Gdy wpiszesz literę, w buforze ona będzie wisieć cały czas, ponieważ nigdzie jej nie ściągasz (nie pozbywasz się jej z buforu) - jako że w swoim kodzie przesuwasz bufor jedynie, gdy przeczytasz liczbę (masz nextInt).

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0