如何解决在java中使用3个验证参数进行输入验证
我有一段代码来验证一个输入,这个输入是相对于用户下注的
- 它必须是一个整数
- 它需要大于 0
- 它需要低于可用积分(用户积分)
- 如果用户写了一个字符串,它应该说:input + " is not a valid number"
- 如果用户写了一个小于或等于零的整数,它应该连续说:“请输入一个正数:”
- 如果用户写入的 int 值高于可用积分,则应该说:“积分不足”
我现在拥有的代码如下:
Scanner scanner = new Scanner(System.in);
int number;
do {
System.out.print("Please enter a positive number: ");
while (!scanner.hasNextInt()) {
String input = scanner.next();
System.out.printf(input + " is not a valid number.\n");
}
number = scanner.nextInt();
} while (number < 0);
System.out.printf("You have entered the number " + number);
我有 1. 和 2. 用这段代码找出来,但我不能无缘无故地添加第三个 (3.) 语句,因为它要求双倍相同的输入或者它给出一个错误 InputMismatchException 因为它假设是一个整数,但在测试中有时会这样做。
这个数字就是赌注
请帮忙xD
解决方法
你的逻辑相当复杂,难以理解。我认为在完成此任务后,您应该寻求一些帮助并找到更好的方法来构建此代码。 (目前,教师通常会要求您上交自己的作业,因此我不会尝试更改您的代码。)
按照您现在拥有代码的方式,您必须分两部分进行最终检查。首先检查然后决定是否打印错误信息。其次,检查并决定是否继续循环。
do {
System.out.print("Please enter a positive number: ");
while (!scanner.hasNextInt()) {
String input = scanner.next();
System.out.printf(input + " is not a valid number.\n");
}
number = scanner.nextInt();
if( number > credits )
System.out.println( "Not enough credits." );
} while (number < 0 || number > credits);
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。