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