Java 来自用户输入的带验证的数组列表

Java 来自用户输入的带验证的数组列表,java,validation,arraylist,Java,Validation,Arraylist,我是编程新手。我正在尝试从用户输入创建ArrayList。我需要验证用户没有输入负数,提示用户正确输入,并继续接受输入。一旦我接受了所有输入,输入的总数。 只要用户不键入连续的负数,我就可以让输入和验证正常工作。如果用户输入连续的负数,则不再抛出验证错误,并从总数中减去输入的负数。 我试着用do,if,while和任何我能想到的方法重写这篇文章,但最终只是让它变得更糟。提前感谢您的帮助 public static ArrayList<Double> readInputs() { Ar

我是编程新手。我正在尝试从用户输入创建ArrayList。我需要验证用户没有输入负数,提示用户正确输入,并继续接受输入。一旦我接受了所有输入,输入的总数。 只要用户不键入连续的负数,我就可以让输入和验证正常工作。如果用户输入连续的负数,则不再抛出验证错误,并从总数中减去输入的负数。 我试着用do,if,while和任何我能想到的方法重写这篇文章,但最终只是让它变得更糟。提前感谢您的帮助

public static ArrayList<Double> readInputs()
{
ArrayList<Double> inputs = new ArrayList<>();
System.out.println("Please enter CU or Type q and Enter to Total.");          
Scanner in = new Scanner(System.in);
while (in.hasNextDouble())
{
double value = in.nextDouble();
if (value < 0)
{
System.out.println("Error: Can not be a Negative Value");
System.out.println("Please enter CU or Type q and Enter to Total.");
value = in.nextDouble();
}
inputs.add(value);
}
return inputs;
}  
publicstaticarraylistreadinputs()
{
ArrayList输入=新的ArrayList();
System.out.println(“请输入CU或键入q并输入总计”);
扫描仪输入=新扫描仪(系统输入);
while(在.hasNextDouble()中)
{
double value=in.nextDouble();
如果(值<0)
{
System.out.println(“错误:不能是负值”);
System.out.println(“请输入CU或键入q并输入总计”);
值=in.nextDouble();
}
投入。增加(价值);
}
返回输入;
}  

添加
continue
语句,而不是在
if
块中读取下一个值

if (value < 0)
{
    System.out.println("Error: Can not be a Negative Value");
    System.out.println("Please enter CU or Type q and Enter to Total.");
    //value = in.nextDouble();
    continue;
}
if(值<0)
{
System.out.println(“错误:不能是负值”);
System.out.println(“请输入CU或键入q并输入总计”);
//值=in.nextDouble();
继续;
}
这样,所有输入都会进行验证

continue
语句将结束当前迭代,并开始下一个迭代

将if(值<0)更改为while(值<0)

基本上,如果用户输入负数,它会一直要求输入

    ArrayList<Double> inputs = new ArrayList<>();
    System.out.println("Please enter CU or Type q and Enter to Total.");
    Scanner in = new Scanner(System.in);
    while (in.hasNextDouble()) {
        double value = in.nextDouble();
        while (value < 0) {
            System.out.println("Error: Can not be a Negative Value");
            System.out.println("Please enter CU or Type q and Enter to Total.");
            value = in.nextDouble();
        }
        inputs.add(value);
    }
    return inputs;
ArrayList inputs=new ArrayList();
System.out.println(“请输入CU或键入q并输入总计”);
扫描仪输入=新扫描仪(系统输入);
while(在.hasNextDouble()中){
double value=in.nextDouble();
while(值<0){
System.out.println(“错误:不能是负值”);
System.out.println(“请输入CU或键入q并输入总计”);
值=in.nextDouble();
}
投入。增加(价值);
}
返回输入;

你真的认为这一行会被编译吗??ArrayList输入=新的ArrayList()@SaurabhSharma当然会。。。在Java7中。您应该从8年前的版本升级;)@布莱恩罗奇:谢谢