您能帮助我理解为什么我需要键入2次才能允许扫描仪扫描我的输入数据。我基本上在以下代码中检查的是验证number是否为int类型并且大于0以询问玩游戏的玩家数量(猜测数字游戏)
验证码工作得很好,但是...我需要输入2次数字...
package pakiet;
import java.util.Random;
import java.util.Scanner;
public class GraModyfikacjaLiczbyGraczy {
public static void main(String[] args) {
Random rand = new Random();
int los = rand.nextInt(11);
int liczbaGraczy; // number of players
Scanner scan7 = new Scanner(System.in); // zamknac
System.out.println("Type number of players");
while (!scan7.hasNextInt() || scan7.nextInt() < 0) {
System.out.println("Type number of players");
scan7 = new Scanner(System.in);
}
liczbaGraczy = scan7.nextInt();
您初始化Scanner
2次,这就是原因-
在while循环中-
while (!scan7.hasNextInt() || scan7.nextInt() < 0) {
System.out.println("Type number of players");
//Issue here
scan7 = new Scanner(System.in);
}
您可以简单地使用scan7.next()
作为下一个输入。
希望这会有所帮助。