尝试打印最大框的体积和宽度和高度的长度时编译错误

时间:2017-01-28 22:45:21

标签: java

我收到错误“double无法解除引用”。在下面的代码上,问题来自于以j开头的第二个for循环。我只能使用一维数组,所以我在脑海中处理这个问题的方法就是把它当作两个for循环的二维数组。我不知道这是否可能,因为我一直得到同样的错误。任何帮助或建议将不胜感激,如果您不明白,请询问。

       public class FedEx12{
            public static void largestBoxMeasurementsAndVolume(double [] lengthArray , double [] widthArray,double [] heightArray){
            double boxVolume1 = lengthArray[0]*widthArray[0]*heightArray[0];
            double boxVolume2 = lengthArray[1]*widthArray[1]*heightArray[1];
            double boxVolume3 = lengthArray[2]*widthArray[2]*heightArray[2];
            double boxVolume4 = lengthArray[3]*widthArray[3]*heightArray[3];
            double boxVolume5 = lengthArray[4]*widthArray[4]*heightArray[4];
            double [] totalBoxVolumes = {boxVolume1, boxVolume2, boxVolume3, boxVolume4, boxVolume5};
            double max = totalBoxVolumes[0];
                for (int i = 0; i < totalBoxVolumes.length;i++){
                    if(max < totalBoxVolumes[i])
                          max = (totalBoxVolumes[i]);       
                          for (int j = 0; j < totalBoxVolumes[0].length;j++){
                                System.out.println(max + "\n" + lengthArray[j] + "\n" + widthArray[j] + "\n" + heightArray[j]);
        }
        }
 }

}

这是我得到的错误

FedEx12.java:16: error: double cannot be dereferenced
                    for (int j = 0; j < totalBoxVolumes[0].length;j++){
                                                          ^

1错误

3 个答案:

答案 0 :(得分:0)

我认为你的意思是使用totalBoxVolumes.length,它将返回数组的大小。

答案 1 :(得分:0)

您正尝试在totalBoxVolumes[0].length的内容上调用方法,该方法包含基本类型(double)。

你想在数组本身上调用方法,所以totalBoxVolumes.lenght

答案 2 :(得分:0)

您已在此表单中定义了totalBoxVolumes数组:

double [] totalBoxVolumes = {boxVolume1, boxVolume2, boxVolume3, boxVolume4, boxVolume5};

所以它是一维数组,这段代码有效:

totalBoxVolumes.length;

但您无法使用以下代码:

totalBoxVolumes[0].length;

totalBoxVolumes[0].length; 对2D数组或更多维度有效