如何在循环无限运行时停止?

问题描述 投票:2回答:2

无法弄清楚如何在循环中无限重复时停止此操作。我正在使用hasNextInt检查用户输入是否为int。如果未输入int,则循环无限重复。

public static void validatingInput(){
    Scanner scan = new Scanner(System.in);

    boolean valid = false;
    int userNumber = 0;

    while(!valid) { 
    System.out.println("Enter number between 1 and 20: ");

    if (scan.hasNextInt()) {    
    userNumber = scan.nextInt();
    valid = true;   
    } else 
        System.out.print("Not an int. ");
    }

}
java while-loop java.util.scanner infinite-loop
2个回答
4
投票

您需要使用扫描程序中的令牌以允许它读取下一个令牌:

while (!valid) { 
    System.out.println("Enter number between 1 and 20: ");

    if (scan.hasNextInt()) {    
        userNumber = scan.nextInt();
        valid = true;   
    } else 
        System.out.print("Not an int. ");
        scan.next(); // Skip a token
    }
}

1
投票

你可以用break;打破任何循环。检查输入的状态并在需要时打破

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