Java, problem z wielokrotnym wczytywaniem danych z klawiatury

0

Witam,
Tak jak temat sugeruje, mam problem z wielokrotnym wczytywaniem danych z klawiatury w Javie.
O to miejsce występowania problemu

public static void ruchGracza(){
		int ruch = 0; 	
		Scanner odczyt = new Scanner(System.in);
		if (odczyt.hasNext()) { ruch = odczyt.nextInt();  }
		odczyt.close();
      //Tutaj znajduje się ciąg dalszy metody, ale jest to tylko zmiana pobranej liczby na odpowiednie miejsce w tablicy
}

Za pierwszym razem wszystko działa idealnie, ale przy drugim i każdym kolejnym wywołaniu metody ruchGracza() wartość zmiennej ruch wynosi zawsze 0 a gracz nie dostaje możliwości wyboru ruchu. Co mogę z tym zrobić?
Gdy usuwam if (odczyt.hasNext()) to program wyświetla błąd:

Exception in thread "main" java.util.NoSuchElementException
	at java.util.Scanner.throwFor(Unknown Source)
	at java.util.Scanner.next(Unknown Source)
	at java.util.Scanner.nextInt(Unknown Source)
	at java.util.Scanner.nextInt(Unknown Source)

Z góry przepraszam, jeżeli podobny wątek już istnieje (mi nie udało się takiego znaleźć).
Pozdrawiam i od razu dziękuję za odpowiedź :)

1

wywal

odczyt.close();

a najlepiej przenieś

Scanner odczyt = new Scanner(System.in);

do metody wywołującej ruchGracza() i przekazuj go do ruchGracza(odczyt)


    public static void main(String[] args) {
        Scanner odczyt = new Scanner(System.in);
        ruchGracza(odczyt);
        ruchGracza(odczyt);
        ruchGracza(odczyt);
        odczyt.close();
    }

    public static void ruchGracza(Scanner odczyt) {
        int ruch = 0;
        if (odczyt.hasNext()) {
            ruch = odczyt.nextInt();
        }
    }

nazwy metod i zmiennych pisz po angielsku

0

Wielkie Dzięki, wszystko poprawione i działa :)

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