我试图通过 for 循环遍历 Java 中的数组,但由于某种原因,如果我强制转换“int”,它只会打印列表中的双精度数。否则,我会收到“类型不匹配:无法将 double 转换为 int”,即使所有内容都是 double,而且我从未尝试将任何数字转换为 int。我是一个完全的编程初学者,因此非常感谢任何和所有的帮助。这是代码:
打包MyProgram1; 导入cs1.键盘;
公共课 MyProgram1{
public static void main(String[] args){
double [] array = {1.0,2.0,4.0,2.5,5.0};
for (double index = 0.0; index <= array.length-1.0; index++){
\\The line below is what results in the error
System.out.println(array[index]);
}
}
}
P.S 顺便说一句,我使用 Eclipse IDE。
我看到一个建议(在 Eclipse 中)说“将强制类型转换添加到 int”,如下所示:
打包MyProgram1; 导入cs1.键盘;
公共课 MyProgram1{
public static void main(String[] args){
double [] array1 = {1.0,2.0,4.0,2.5,5.0};
for (double index = 0.0; index <= array1.length-1.0; index++)
System.out.println(array1[(int)index]);
}
}
工作完美,打印内容如下: 1.0 2.0 4.0 2.5 5.0
我的问题是为什么?为什么我需要转换它,当我这样做时,为什么所有内容都打印为双精度?结果不应该是整数吗?
再次感谢任何澄清。
问题是您正在使用“double”变量迭代数组。数组索引是integer类型
将“index”变量类型更改为 int 应该没问题,即
public static void main(String[] args){
double [] array = {1.0,2.0,4.0,2.5,5.0};
for (int index = 0; index <= array.length-1; index++){
System.out.println(array[index]);
}
}