gpt4 book ai didi

java - 在函数中使用 for-each 循环更好,还是 while 循环和 “found” 变量更好?

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:27:33 25 4
gpt4 key购买 nike

<分区>

我正在参加在线 Java 入门类(class)。在关于 ArrayList 的类(class)中​​,有一个练习,我们得到一个包含 Picture 对象的 ArrayList,并要求调用 draw() 在第一张纵向的 Picture 上。我们得到了一些代码开始:

// BlueJ project: lesson7/gallery8
// Find and draw the first portrait in the gallery.
// Notice the pseudocode from the instructions has been started for you; your task is to complete it.

import java.util.ArrayList;

public class ListOfPictures
{
public static void main(String[] args)
{
ArrayList<Picture> gallery = new ArrayList<Picture>();
gallery.add(new Picture("degas1.jpg"));
gallery.add(new Picture("gaugin1.jpg"));
gallery.add(new Picture("monet1.jpg"));
gallery.add(new Picture("monet2.jpg"));
gallery.add(new Picture("renoir1.jpg"));

int i = 0;
boolean found = false;
while ()
{
}

if (found)
{
....draw();
}
}
}

我似乎很清楚他们希望我们做什么。不过,我认为最好是创建一个函数并从 for-each 循环中 return,而不是使用 found 和一个计数器变量。这是我想出的:

    public static void main(String[] args)
{
// declare/initialize/populate gallery
Picture firstPortrait = findFirstPortrait(gallery);
if (firstPortrait != null)
firstPortrait.draw();
}

private Picture findFirstPortrait(ArrayList<Picture> gallery)
{
for (Picture pic : gallery)
if (pic.getHeight() > pic.getWidth()) // pic is in portrait
return pic;
return null; // there aren't any images in portrait
}

不过,他们似乎真的不喜欢它。当我提交我的代码时,我得到了这个:

ListOfPictures.java: Keep looking for matches while found is false

Score
0

哪种方法更好?一般来说,我应该避免使用这样的“标志”变量吗?

编辑:是的,它是自动评分的。我实际上在其他练习中遇到了一个错误,说评分者不知道如何处理我的代码,我应该将它发布到论坛上(这看起来很像 Stack Overflow,只是似乎没有人知道 how to use it ) .

在论坛上链接到这个问题。 :)

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