【发布时间】:2018-03-10 05:18:10
【问题描述】:
**感谢 Adi219 和 Charles Spencer 帮助我完成第 1 部分。
现在我正在尝试一种不同的方法,通过在将输入存储到数组之前验证输入,它在大多数情况下看起来都很好,但异常只运行一次。
这是我用来测试验证的内容
1)我输入“a”,它返回“输入0到100之间的数字”,这是正确的。
2) 我输入 1000,它返回“无效年龄”,我可以看出我的 IF 条件有效。
3) 当我为用户 1 输入正确的值时没有问题
当我尝试在用户 2 上运行相同的测试时出现问题。在我为用户 1 输入正确的值后,我再次输入“A”,程序绕过所有这些条件并且没有捕获任何整数值。
import java.util.Scanner;
public class test2
{
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
int i = 0;
double x = 0;
double Total = 0;
double Average = 0;
int Users = 2; //I fixed a number for testing purpose
boolean isNumber =false;
double ages[] = new double[Users];
for(int counter =0; counter < Users; counter++){
System.out.print("Enter the age for users "+(counter+1)+ ": ");
do{
try {
x =input.nextDouble();
if(x<0 || x>100){
System.out.print("Invalid age.. try again.. ");
}else if(x>0 || x<100){isNumber=true;}
}catch(Exception e){
System.out.print("Please enter number between 0 to 100 ");
input.next();
}
}while(!(isNumber));
System.out.println("User Age is "+ x); //Just to check input user's age
}
}
}
【问题讨论】:
-
请阅读 Java 命名约定。变量名以小写字母开头。并考虑在您的问题中省略称呼部分。使用 cmets 表示感谢。问题应仅与技术内容有关。
-
然后阅读minimal reproducible example 并相应地增强您的问题。我不知道你在期待什么以及到底会发生什么。不要只是抛出一些代码 - 给我们一个清晰完整的minimal reproducible example!
标签: java arrays for-loop try-catch