Wie kann ich überprüfen, ob ein Eingang von einem Scanner
verfügbar ist, ohne Blockierung zu riskieren?Prüfen, ob der Scanner etwas enthält, während der Schleife
Betrachten Sie zum Beispiel die folgende Methode. In jeder Schleifeniteration sollte es Benutzereingaben akzeptieren, wenn es welche gibt, aber ohne Eingabe fortfahren, wenn keine eingegeben wurde. Stattdessen wartet reader.nextLine()
darauf, dass der Benutzer eine Zeile eingibt, bevor er fortfährt.
public void creatureCombate() {
while (true) {
Scanner reader = new Scanner(System.in);
String userInput = reader.nextLine();
wait(1);
System.out.println("Wolf attacks");
if(userInput.equals("hit")){
System.out.println("hit wolf");
} else{
System.out.println("Tries again");
}
}
}
Und Ihre Frage ist ... –
Hmm ist es nessesary ein neues Scaner Objekt zu erstellen Jedes Mal, wenn die Schleife ausgeführt wird? Und wie @JoeC wies, warum ist es in Ihrem Fall ein Problem? Ich sehe kein Problem im obigen Code? –
geben Sie bitte mehr Details über das Problem – Uzair