gpt4 book ai didi

java - 错误代码不兼容的类型 : possible lossy conversion from double to int

转载 作者:行者123 更新时间:2023-11-30 06:48:48 26 4
gpt4 key购买 nike

我正在根据教科书的示例更改此代码,以与双数组兼容。代码中有几个地方我不确定如何修复错误“不兼容的类型:从 double 到 int 可能有损转换”

temp = numberList[max];    
numberList[max] = numberList[numberList.length - i - 1];
numberList[numberList.length - i - 1] = temp;

if (numberList[i] > numberList[index] )

j = i;
temp = numberList[i];

这些显示错误“不兼容的类型:从 double 到 int 可能有损转换。”

我在第一次使用indexOfLargestElement时也收到错误,“找不到符号。”

package week5;
import java.util.Arrays;
/**
*
* @author meowens
*/
public class Week5 {

/**
* @param args the command line arguments
*/

public static void selectionSort( double [] numberList) {

double temp;
double max;

for (double i = 0; i < numberList.length - 1; i++)
{
max = indexOfLargestElement( numberList, numberList.length - i);

temp = numberList[max];
numberList[max] = numberList[numberList.length - i - 1];
numberList[numberList.length - i - 1] = temp;
}
}
private static double indexOfLarggestElement( double [] numberList, double size )
{
double index = 0;
for ( double i = 1; i < size; i++)
{
if (numberList[i] > numberList[index] )
index = i;
}
return index;
}
public static void insertionSort ( double [] numberList)
{
int j, temp;

for ( double i = 1; i < numberList.length; i++ )
{
j = i;
temp = numberList[i];

while ( j != 0 && numberList[j - 1] > temp )
{
numberList[j] = numberList[j - 1];
j--;
}

numberList[j] = temp;
}
// TODO code application logic here



// assigning values
numberList[0] = 53.5;
numberList[1] = 60.3;
numberList[2] = 96.2;
numberList[3] = 53.3;
numberList[4] = 56.4;
numberList[5] = 52.7;
numberList[6] = 76.4;
numberList[7] = 77.5;
numberList[8] = 71.0;
numberList[9] = 78.2;

numberList[10] = 65.2;
numberList[11] = 59.3;
numberList[12] = 80.5;
numberList[13] = 92.1;
numberList[14] = 85.7;
numberList[15] = 78.7;
numberList[16] = 66.2;
numberList[17] = 88.8;
numberList[18] = 50.2;
numberList[19] = 73.4;

}

}

我确信还有其他简单的错误我还没有发现,因为我还没有机会调试和校对代码,而且我对 Java 和一般编程也很陌生。

感谢您的帮助!

最佳答案

for ( double i = 1; i < numberList.length; i++ )

除了 byteshortint 之外,您不能使用任何其他类型来通过数组进行索引,因此会出现问题。 char 值也可以用作索引值,因为它们会受到一元数字提升并成为 int 值,但使用 char 值的情况很少见作为索引器。

确保在使用 double 类型变量在数组中进行索引的地方,将 double 类型变量更改为 int 类型变量。

Java 文档

Arrays must be indexed by int values; short, byte, or char values may also be used as index values because they are subjected to unary numeric promotion (§5.6.1) and become int values.

An attempt to access an array component with a long index value results in a compile-time error.

关于java - 错误代码不兼容的类型 : possible lossy conversion from double to int,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43213338/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com