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