我需要在扫描仪扫描输入后键入数字2次

问题描述 投票:0回答:1

您能帮助我理解为什么我需要键入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();
java java.util.scanner
1个回答
0
投票

您初始化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()作为下一个输入。

希望这会有所帮助。

© www.soinside.com 2019 - 2024. All rights reserved.