Java ArrayList存储用户输入并在输入-999时终止

时间:2018-10-05 13:29:42

标签: java arraylist

我一直在使用带有arrayList的Java程序进行工作,该arrayList接受用户输入(双精度),但是当用户输入-999时终止。我尝试了各种while循环,并不断出错。

import java.util.Scanner;
import java.util.ArrayList;

public class Main {

    public static void main(String[] args) {

        double Size;

        Scanner in = new Scanner(System.in); // scanner object for user input

        double a = -999;

        ArrayList<Double> inputs = new ArrayList<Double>();   

        System.out.println("Enter a number, to terminate enter -999 :");
        while (in.hasNextDouble()) {                       
            inputs.add(in.nextDouble()); }

        if (in != a)
            System.out.println("Enter a number, to terminate enter -999 :");
        else{
            break;
        }

    }
}

3 个答案:

答案 0 :(得分:1)

您要尝试将扫描仪与len的双精度值进行比较,应将下一个双精度值分配给变量,然后对其进行测试。

x = array.index(sorted(array, key=len)[-1])
# 2

答案 1 :(得分:0)

“ in”是扫描仪,而a是双精度。当您应用!=运算符时,a将转换为Double。由于Scanner!= Double始终为true,因此您会不断循环播放。

您要从扫描仪中检索值并将其转换为双精度值。然后,您要比较该值。

答案 2 :(得分:0)

import java.util.Scanner;
import java.util.ArrayList;

public class Main {

    public static void main(String[] args) {

        double Size;

        Scanner in = new Scanner(System.in); // scanner object for user input

        double a = -999;

        ArrayList<Double> inputs = new ArrayList<Double>();   

        System.out.println("Enter a number, to terminate enter -999 :");
        while (in.hasNextDouble()) {  
            double tmp=in.nextDouble();
            inputs.add(tmp); 

            if (tmp!=a)
             System.out.println("Enter a number, to terminate enter -999 :");
            else{
                break;
            }
        }
    }
}

这是您的代码已更正。 您在while语句中将}放在错误的位置。 此外,我建议使用一个临时变量(tmp)来读取值。 这样,您可以毫无问题地使用tmp