J'écris un système de combat RPG à partir de zéro en Java, ambitieux, n'est-ce pas? Eh bien, j'ai quelques problèmes. Ceci est mon code:
void turnChoice() {
System.out.println("What will you do? Say (Fight) (Run) (Use Item)");
Scanner turnChoice = new Scanner(System.in);
switch (turnChoice.nextLine()) {
case ("Fight"):
Combat fighting = new Combat();
fighting.fight();
default:
}
turnChoice.close();
}
Quand cela touche ce point dans le code, je reçois:
Que vas-tu faire? Dire (combat) (courir) (utiliser l'élément)
Exception dans le fil "principal" java.util.NoSuchElementException: aucune ligne trouvée
à java.util.Scanner.nextLine (Source inconnue)
à Combat.turnChoice (Combat.java:23)
La classe s'appelle Combat, je le veux justedonnez une option pour combattre ou courir ou utiliser des objets, j’essaie d’abord la méthode du combat. Aidez-moi, je suis un peu nouveau en Java, alors ne compliquez pas les choses si possible.
Réponses:
22 pour la réponse № 1Quand vous lisez en utilisant Scanner
de System.in
, vous ne devriez pas fermer Scanner
cas parce que la fermeture d'un fermera System.in
et quand vous faites ce qui suit, NoSuchElementException
sera jeté.
Scanner sc1 = new Scanner(System.in);
String str = sc1.nextLine();
...
sc1.close();
...
...
Scanner sc2 = new Scanner(System.in);
String newStr = sc2.nextLine(); // Exception!