Mam taki problem jak w temacie. Nie potrafię znaleźć rozwiązania chociaż przeczytałem już chyba z 50 stron na stackoverflow. Zmieniłem nawet IDE, bo raz mi to pomogło na podobny problem (nie wiem dlaczego, wziąłem to za bug starego IDE).
package primitive.arena;
import java.util.Scanner;
public class PrimitiveArenaGame {
public static void main(String[] args) {
System.out.println("WITAJ W PROGRAMIE BATTLE ARENA!!!\n");
Arena arena = new Arena();
arena.project();
System.out.println("WPROWADZ INT ZEBY WYCZYŚCIC");
int xxx;
try (Scanner scanner1 = new Scanner(System.in)) {
xxx = scanner1.nextInt();
}
System.out.println("CZYSZCZENIE");
}
}
xxx = scanner1.nextInt()
nie działa, jest wyjątek java.util.NoSuchElementException. Od razu po komunikacie "WPROWADZ INT ZEBY WYCZYŚCIC", jeszcze nikt nic nie zdąży wprowadzić.
Wiem, że można zrobić if (scanner1.hasNextInt())
, ale co mi to da? Program się nie wysypie, ale inta nie wczytam, a ja go chcę wczytać.
Problem jest w metodzie arena.project(), gdy ją zakomentuję, to mogę wczytać inta.
Metoda arena.project() wygląda tak:
public void project(){
System.out.println("Wpisz szerokosc areny...");
int szerokosc, wysokosc;
try (Scanner scanner = new Scanner(System.in)) {
szerokosc = scanner.nextInt();
System.out.println("Podaj wysokosc areny...");
wysokosc = scanner.nextInt();
System.out.println("EXCELLENT! A wiec wymiary areny to " + szerokosc + " na "+ wysokosc + ".");
}
}
I ona działa, inty się tu wczytują. Jak to jest, że drugi scanner nie działa, chociaż jest wszystko tak samo zrobione?
try (Scanner scanner1 = new Scanner(System.in)) {
xxx = scanner1.nextInt();
}
try (Scanner scanner = new Scanner(System.in)) {
szerokosc = scanner.nextInt();
wysokosc = scanner.nextInt();
}
To samo? To samo!
Przemieściłem w mainie metodę arena.project()
na koniec, czyli po System.out.println("CZYSZCZENIE");
. Wtedy program kończy się tym samym wyjątkiem po System.out.println("Wpisz szerokosc areny...");
Wygląda jakby każdy scanner osobno działał, ale jak są po sobie w programie, to ten drugi sprawia problemy.
dodanie znaczników `` - furious programming