//创建一个扫描器对象以从用户扫描器scan=new scanner(system.in)读取输入;
//Asks the user for the month of birth
System.out.print("Enter your Month of Birth: ");
//Utilizes a while loop to verify input type and prompt re-enter if necessary
while (!scan.hasNextInt())
{
System.out.print("Invalid data type: Please enter an Integer: ");
scan.next();
}
//If input is correct type, uses the input
BirthMonth = scan.nextInt();
//Utilizes the while loop to verify and ask user to re-enter month input if incorrect
while (BirthMonth<1 || BirthMonth >12)
{
System.out.print("Invalid Month. Re-Enter your Month of Birth: ");
BirthMonth = scan.nextInt();
}
当输入无效的范围时就会出现问题。程序提示用户重新输入指定范围内的适当整数。如果用户在此时重新输入一个无效的数据类型(例如ten),程序将崩溃。我相信这是因为一旦验证了正确的数据类型,程序就会继续验证范围,而不会重新检查正确的数据类型。
我认为通过嵌套while语句可以很容易地解决这个问题,这样每次输入新的输入时,程序都将重新检查数据类型。我无法正确设置while语句的格式/嵌套。有什么想法/暗示吗?
你可以这样试试
int出生月份=0;while(true){if((!scan.hasnextint()){system.out.print(“无效的数据类型:请输入整数:”);scan.next();}else{Birthmonth=scan.nextint();if(Birthmonth<1 Birthmonth>12){system.out.print(“无效的月份。重新输入您的出生月份:”);scan.next();}else break;}}
只是想寻求一点帮助!我现在正在做一个体重转换项目。我已经让它正常工作了,但现在我正试图让它成为傻瓜式的,也就是说,如果用户输入的数值低于或超过某个范围(在本例中,我寻找的是0到450之间的KG),则会出现一条消息,告知错误,然后会提示用户再次输入其值。我可以用下面的代码实现这一点,但问题是,当用户输入一个有效值时,它不仅会打印有效输入的转换,还会打印之前不正确的值的转换。我附上了一个命令提示符的屏
我想在用户使用Scanner输入时验证数据类型(在我的情况下是“int”)。 我在下面写了代码。 问题是,在第一个块中,若我给字符,程序终止。“如何在验证失败时保持循环运行??” 在第二个块中,如果我给出非整数,它将无限运行,并显示消息“仅输入整数值”。 从调试中,我得出结论,在不等待输入的情况下,它采用之前提供的最后一个非int值。 为什么编译器取最后一个值?? 有什么建议吗?
下面提供了一个POJO,
我有一个
我正在尝试创建一个输入来验证输入是整数,并且它是正的。现在我有这个。我应该如何检查整数是否为正 编辑:我还需要它一直询问,直到你输入一个正整数
数据格式 需求点 基础验证:必填、长度等验证、正则等 通过基础验证后,再验证DB类查询的项,比如唯一性 减少查询次数,比如示例中code字段都是从一个表中查询 基本验证,一般是通过注解来完成,那么涉及到DB查询的,也是通过自定义注解,还是在service层验证呢?或是有其他的什么手段,使其简洁明了。