当前位置: 代码迷 >> java >> 在数组中存储双精度数
  详细解决方案

在数组中存储双精度数

热度:25   发布时间:2023-07-31 10:58:28.0

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

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() 为什么如果它显然是双倍的?

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

UPDATE

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

该错误是因为您尝试在以下语句中为数组分配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();

它是一个数组(这是一种对象)。 首先,创建一个足够大的数组来存储你的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));

数组不是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教程,了解该语言的基础知识。

mylistarray双打,而不是一个double

当你做mylist = bob.nextDouble(); 你基本上试图使整个数组等于一个数字。

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

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

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

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

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

List<Double> myList;

myList.add(bob.nextDouble());

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

  相关解决方案