gpt4 book ai didi

java - 使用java扫描器在获取用户输入时检查两个条件

转载 作者:行者123 更新时间:2023-12-02 03:29:01 26 4
gpt4 key购买 nike

我需要用户输入 1 到 301 之间的整数。我在这里有一个简单的循环来检查用户输入。我只想要用户提供的一个数字,如果用户输入除 1 到 301 之间的整数之外的任何内容,我想显示打印行并提示用户重试,直到他们输入有效输入。

        while (!sc.hasNextInt()) {
System.out.print("Invalid Input. Please enter a valid number between 1 and 301: ");
sc.next();
}
int numToCheck = sc.nextInt();
// do stuff with numToCheck

这会检查输入是否为 int,但我似乎找不到一种方法来为 int 输入提供边界。我尝试将用户输入分配给变量,然后检查条件 input < 1 或 input > 301,但如果用户输入字母,我会收到 InputMismatchException。我应该如何存储用户输入? (我想将其存储为 int 来检查条件,但不能这样做,因为我不知道用户将输入什么)。

也许有更好的设计来完成这一切。这些也受到欢迎。

提前致谢。

最佳答案

您没有保存输入的值。因此,您的程序每次看到“sc.nextInt()”时都会等待用户输入数字将输入分配给变量,然后检查条件。编辑:好的,我会为你加倍努力。看看这是否有效。

***考虑了用户可能输入字符而不是数字的情况。

import java.util.*;
public class HelloWorld{

public static void main(String []args){
Scanner sc = new Scanner(System.in);
int input;
while (true){
if (sc.hasNextInt()){
input = sc.nextInt(); // Assign the next integer to a variable
if (input <= 301 && input >= 1){ // Check if integer meets condition
break; // Condition met, break out of loop
}
}else{
sc.next();
}
System.out.println("Invalid Input. Please enter a valid number between 1 and 301: ");
}
}

}

关于java - 使用java扫描器在获取用户输入时检查两个条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38355901/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com