问题描述
好吧,所以我想将值存储在数组中。 这是我的代码:
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[]
。
这是什么意思?
1楼
该错误是因为您尝试在以下语句中为数组分配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();
2楼
它是一个数组(这是一种对象)。
首先,创建一个足够大的数组来存储你的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));
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教程,了解该语言的基础知识。
4楼
mylist
是array
双打,而不是一个double
。
当你做mylist = bob.nextDouble();
你基本上试图使整个数组等于一个数字。
您需要将数字分配给数组中的特定位置。
使用要存储在数组中的元素数量初始化数组:
double[] mylist = new double[2];
将double分配给数组中的特定位置:
mylist[0] = bob.nextDouble(); mylist[1] = bob.nextDouble();
5楼
更好的是,使用带有泛型的列表。
List<Double> myList;
myList.add(bob.nextDouble());
这样,您可以在列表中添加任意多个双打。 这样你就不必担心索引了。