我的探索方法遇到问题() 我必须创建一个图片,其高度是高度的最大值,宽度是 存储图片宽度的总和。到目前为止应复制的相册中的图片被复制到新图片中,并通过调用其上的explore()方法显示该图片。 这就是我所拥有的:
public boolean addPicture( Picture thePicture, int where )
{
int index = nPictsInAlbum;
pictArray[index] = pictArray[index-1];
while( index > where )
{
pictArray[where] = thePicture;
nPictsInAlbum ++;
}
return true;
}
public void explore()
{
int maxHeight = 0; //max height for the picture
int value = 0;
int biggest = 0;
for(int i = 0; i < pictArray.length; i++)
{
nPictsInAlbum = pictArray[i];
if(value > maxHeight)
{
biggest = value;
maxHeight = i;
}
}
答案 0 :(得分:0)
我假设变量最大是保持总宽度的变量。
你的代码出了点问题,你必须先解决这些问题
您正在多次为不同类型的变量重复使用nPictsInAlbum。你不应该这样做。我不是一个java程序员,但它至少在其他语言中是一种不好的做法,因为它会导致混乱。您可以在addPicture
方法中使用该变量来跟踪最新索引。但是在explore
方法中,您可以使用它临时存储您正在访问的单个图片。
在explore
方法中,您不会访问图片对象的属性\字段。在不知道图片对象具有哪些属性\字段的情况下,我们无法完全纠正您的代码。
如果您解决了这两个问题,那么explore
方法中的逻辑错误就是
(假设变量biggest
是总宽度,如果是,则应将其重命名为更具描述性)当您计算出当前的高度时,您只需设置总宽度您拥有的图片的高度比以前存储的图片大。无论如何循环每张图片,都需要始终设置总宽度。
设置图片的总宽度时,您将替换总数,而不是添加总数。在您的示例biggest = value
中不会添加它。您希望biggest = biggest + value
执行此操作
您希望确保在制作方法时花些时间。仔细思考它将要做什么,你需要什么变量,你将访问哪些其他变量,以及你将如何处理它们。例如,如果explore
的点是确定最大高度和总宽度,您会这样想:
totalWidth = totalWidth + picture.width
希望这有助于您清理代码并更好地工作。