Java 如何通过验证用户';s的输入仅仅是数字?
我试图向数组中添加3个元素,但我希望确保用户的输入仅为数字。到目前为止,我有一个for循环,允许用户输入3个数字,如果用户输入的不是数字,我会减去1,所以我仍然确保只得到3个数字。运行代码后,我得到一个异常错误(线程“main”java.util.InputMismatchException中的异常)。请有人告诉我我做错了什么。提前谢谢你Java 如何通过验证用户';s的输入仅仅是数字?,java,arrays,Java,Arrays,我试图向数组中添加3个元素,但我希望确保用户的输入仅为数字。到目前为止,我有一个for循环,允许用户输入3个数字,如果用户输入的不是数字,我会减去1,所以我仍然确保只得到3个数字。运行代码后,我得到一个异常错误(线程“main”java.util.InputMismatchException中的异常)。请有人告诉我我做错了什么。提前谢谢你 int[] arr = new int[3]; for (int i = 0 ; i < arr.length ; i++) {
int[] arr = new int[3];
for (int i = 0 ; i < arr.length ; i++) {
try
{
System.out.println("Please enter a number: ");
arr[i] = scan.nextInt();
}
catch(Exception ex)
{
i--;
System.out.println("Please enter a valid number");
arr[i] = scan.nextInt();
}
}
int[]arr=newint[3];
对于(int i=0;i
当下一个令牌不是int
时,调用scan.nextInt()
将不会使用该令牌。相反,您应该通过调用scan.next()
(在catch
块中)来使用非int
。大概
for (int i = 0; i < arr.length; i++) {
try {
System.out.printf("Please enter a number for arr[%d]:%n", i);
arr[i] = scan.nextInt();
} catch (Exception ex) {
i--;
System.out.printf("%s is not a number.%n", scan.next());
}
}
for(int i=0;i
用于检查下一个令牌是否为int。
请参阅以下代码:
for (int i = 0; i < arr.length; i++) {
try {
System.out.printf("Please enter a number: ");
if(scan.hasNextInt()){
arr[i] = scan.nextInt();
}else{
i--;
System.out.println(scan.next() + " is not a number.", );
}
} catch (Exception ex) {
}
}
for(int i=0;i
您的输入是什么?我喜欢您使用arr[%d]来定位每个数字的方式。谢谢!!