在数组中存储双精度数

时间:2015-07-17 01:23:49

标签: java arrays

好的,所以我想将值存储在数组中。这是我的代码:

import java.util.Scanner;
public class test {
    public static void main(String args[]){
        Scanner bob = new Scanner(System.in);

        double[] mylist;

        System.out.println("What is your first value?");
        mylist = bob.nextDouble();

        System.out.println("What is your second value?");
        mylist = bob.nextDouble();
    }
}

问题#1:我被告知mylist = bob.nextDouble()应该是nextLine()。如果它显然是双重的话为什么呢?

目标:我想以某种方式将这些值存储到一个数组中,以便以后可以将它们拉出来。有人可以帮忙吗?

更新

对于问题#1,它告诉我它无法从Double()转换为Double[]。这是什么意思?

5 个答案:

答案 0 :(得分:5)

错误是因为您尝试在以下语句中为数组指定double值:

    mylist = bob.nextDouble();

因为mylist在这里被定义为一个数组:

    double[] mylist;

首先,您需要初始化您的数组:

    double[] mylist = new double[2]; // initialise array to have two elements

然后尝试使用用户输入分配数组元素,如下所示:

    mylist[0] = bob.nextDouble();
    mylist[1] = bob.nextDouble();

答案 1 :(得分:3)

它是一个数组(它是一种对象)。首先,创建一个足以存储double(不是int(s))的数组。并将值存储在适当的索引处。像,

Scanner bob = new Scanner(System.in);
double[] mylist = new double[2];
System.out.println("What is your first value?");
mylist[0] = bob.nextDouble();
System.out.println("What is your second value?");
mylist[1] = bob.nextDouble();
System.out.println(Arrays.toString(mylist));

答案 2 :(得分:3)

数组不是double,您需要选择索引:

double[] arr = new double[2];
System.out.println("What is your first value?");
arr[0] = bob.nextDouble();

System.out.println("What is your second value?");
arr[1] = bob.nextDouble();

另外,不要将数组称为列表,使用CamelCase命名 变量/方法/类,并初始化数组。我建议您阅读Java教程,了解该语言的基础知识。

答案 3 :(得分:3)

mylistarray双打,而不是double

执行mylist = bob.nextDouble();时,您基本上试图使整个数组等于一个数字。

您需要将数字指定给数组中的特定位置。

  1. 使用要存储在数组中的元素数量初始化数组:

    double[] mylist = new double[2];
    
  2. 将double分配给数组中的特定位置:

    mylist[0] = bob.nextDouble();
    mylist[1] = bob.nextDouble();
    

答案 4 :(得分:0)

更好的是,使用带有泛型的列表。

List<Double> myList;

myList.add(bob.nextDouble());

这样,你可以在列表中添加任意多个双打。所以你不必担心索引。