【发布时间】:2016-11-04 19:44:56
【问题描述】:
我正在尝试使用 while 循环和 Java 中的嵌套 if 语句仅接受 1 和 3 值之间的整数。
任何超出此范围的内容都会产生错误消息
程序应该只接受 1 到 3 之间的整数,任何文本字符串或十进制值也应该产生相同的错误消息并循环回原始打印语句(输入一个数字:)
下面的代码运行没有任何编译器错误,尽管语句 || (a 3)) 将始终产生错误消息,无论值如何。
如果我要删除此语句,程序将运行并且只接受任何值的整数,(输入字符串或十进制值时出现错误消息)
谁能帮助这个程序的范围,只接受 1 到 3 之间的值,谢谢。
导入 java.util.Scanner;
公共类验证{ 公共静态 void main(String[] args) {
Scanner input = new Scanner(System.in);
int a = 0;
while (true) {
System.out.print("enter a number: ");
if (!input.hasNextInt() || !input.hasNext() || (a < 1 || a > 3)) {
System.out.println("Oops! ");
input.nextLine();
}
else {
a = input.nextInt();
break;
}
}
input.close();
System.out.println("a = " + a);
}
}
【问题讨论】:
-
(a < 1 && a > 4)永远不会为真:一个数字不能小于 1 且大于 4。您想要的是a < 1 || a > 3(即a小于 1 或a大于超过 3 个。) -
是的,我的错。尽管现在该程序似乎不接受任何范围。而是始终显示错误消息
标签: java validation