Java 在这种情况下,如何使用常规for循环来确定方形阵列的最大计算面积?

Java 在这种情况下,如何使用常规for循环来确定方形阵列的最大计算面积?,java,arrays,Java,Arrays,我刚开始编程,发现数组非常混乱。这就是我目前所知道的。我希望有人能帮我解释为什么我不能将maxArea设置为squareArray[0],以及我应该如何进行设置。我需要能够在调用每个square对象的calculateArea方法时,使用for循环将squareArray的maxArea作为double返回 public class Square{ private double sideLength; public Square (double lengthOfSides){ sideL

我刚开始编程,发现数组非常混乱。这就是我目前所知道的。我希望有人能帮我解释为什么我不能将maxArea设置为squareArray[0],以及我应该如何进行设置。我需要能够在调用每个square对象的calculateArea方法时,使用for循环将squareArray的maxArea作为double返回

public class Square{

private double sideLength;

public Square (double lengthOfSides){
  sideLength = lengthOfSides;
  }

public double calculateArea (){
double Area;
Area = sideLength * sideLength;
return Area;
}


public static double findMaximumArea(Square[] squareArray){
double maxArea;
squareArray[0] = maxArea;

for(int i = 0; i < squareArray.length; i++){
if(squareArray[i] > maxArea){
 maxArea = squareArray[i];
  }
  return maxArea;
   }
  }
 }

}让我们逐行检查您的代码:

public static double findMaximumArea(Square[] squareArray){
所以这个方法返回正方形数组中所有正方形中最大正方形的面积。好的

    double maxArea;
    squareArray[0] = maxArea;
在这些行中,您的目的是用数组的第一个正方形之一初始化当前最大面积。但是作业的顺序不对,你实际上没有计算面积。我读的是
=
。因此,上面这一行的意思是:

数组的第一个元素成为maxArea

你真正想要的是

maxArea成为数组第一个元素的区域:

让我们继续:

for (int i = 0; i < squareArray.length; i++){
    return maxArea;
}
这一次,作业的顺序是正确的。但再一次,您将一个正方形(
squareArray[i]
,类型为square)与一个面积(
maxArea
,类型为
double
)进行比较。您需要计算当前元素的面积,并将其与最大面积进行比较:

 double area = squareArray[i].calculateArea();
 if (area > maxArea) {
     maxArea = area;
 }
让我们继续:

for (int i = 0; i < squareArray.length; i++){
    return maxArea;
}

很好。

使用maxArea=squareArray[i]。边长;
    return maxArea;
}