Java 如何打破循环并打印数组的内容

Java 如何打破循环并打印数组的内容,java,Java,当用户输入“完成”并打印用户输入的内容时,如何打破循环?另外,我希望能够在打印过程中找到数组的最小元素和最大元素 import java.util.Arrays; public class array2 { public static void main(String[] args) { java.util.Scanner input = new java.util.Scanner(System.in); input.useDelimiter(Syst

当用户输入“完成”并打印用户输入的内容时,如何打破循环?另外,我希望能够在打印过程中找到数组的最小元素和最大元素

import java.util.Arrays;

public class array2 {
    public static void main(String[] args) {
        java.util.Scanner input = new java.util.Scanner(System.in);

        input.useDelimiter(System.getProperty("line.separator"));

        int numofpeople = 10;
        Person[] persons = new Person[numofpeople];

        for (int i = 0; i < numofpeople; i++) {
            System.out.print("Enter the person's name: ");
            String person = input.next();

            if(person.equals("done")){break;}

            System.out.print("Enter the persons's age: ");
            int age = (Integer) input.nextInt();
            persons[i] = new Person(person, age);
        }


    }

}

class Person implements Comparable<Person> {
    public String person;
    public Integer age;
    public Person(String s, Integer g) {
        this.person = s;
        this.age = g;
    }

    @Override
    public int compareTo(Person o) {
        return (this.age>o.age?1:-1);
    }
}


导入java.util.array;
公共类数组2{
公共静态void main(字符串[]args){
java.util.Scanner输入=新的java.util.Scanner(System.in);
input.useDelimiter(System.getProperty(“line.separator”);
int numofpeople=10;
人员[]人员=新人员[numfopeople];
for(int i=0;io.age?1:-1);
}
}

break
语句将使程序离开
for
循环。在
for
循环之外,您没有可以打印数组的代码。事实上,循环之外没有代码。这将使您的程序退出,因为它位于
main
方法中。因此,您需要代码来打印数组

给出以下所有注释的完整解决方案:

import java.util.ArrayList;

public class Array2 {

    public static void main(String[] args) {
        java.util.Scanner input = new java.util.Scanner(System.in);
        ArrayList<Person> persons = new ArrayList();
        int numOfPeople = 10;
        for (int i = 0; i < numOfPeople; i++) {
            System.out.print("Enter the person's name: ");
            String person = input.nextLine();
            if (person.trim().equalsIgnoreCase("done")) {
                break;
            }
            System.out.print("Enter the persons's age: ");
            int age = Integer.parseInt(input.nextLine());
            persons.add(new Person(person, age));
        }
        //Collections.sort(persons); //not sorting anymore
        for (Person person : persons) {
            System.out.println(person.name + ": " + person.age);
        }
        Person youngestPerson = getYoungest(persons);
        Person oldestPerson = getOldest(persons);
        System.out.println("Youngest: " + youngestPerson.name + ": " + youngestPerson.age);
        System.out.println("Oldest: " +oldestPerson.name + ": " + oldestPerson.age);

    }

    public static Person getYoungest(ArrayList<Person> people) {
        Person youngestPerson = null;
        for (Person person : people) {
            if (youngestPerson == null || person.age < youngestPerson.age) {
                youngestPerson = person;
            }
        }
        return youngestPerson;

    }

    public static Person getOldest(ArrayList<Person> people) {
        Person oldestPerson = null;
        for (Person person : people) {
            if (oldestPerson == null || person.age > oldestPerson.age) {
                oldestPerson = person;
            }
        }
        return oldestPerson;

    }

    protected static class Person implements Comparable<Person> {

        protected String name;
        protected int age;

        public Person(String name, int age) {
            this.name = name;
            this.age = age;
        }

        @Override
        public int compareTo(Person o) {
            return (this.age > o.age ? 1 : -1);
        }
    }

}
import java.util.ArrayList;
公共类数组2{
公共静态void main(字符串[]args){
java.util.Scanner输入=新的java.util.Scanner(System.in);
ArrayList persons=新建ArrayList();
int numOfPeople=10;
for(int i=0;ioldestPerson.age){
老年人=人;
}
}
还老者;
}
受保护的静态类{
受保护的字符串名称;
保护智力;
公众人物(字符串名称,整数年龄){
this.name=名称;
这个。年龄=年龄;
}
@凌驾
公共内部比较(o人){
返回(this.age>o.age?1:-1);
}
}
}

您应该选中“中断”与“继续”,当条件满足时,中断将结束for循环。“继续”将跳过该特定输入并继续执行其余输入。“程序将完成,而不是显示我以前编写的答案。”代码的哪一部分负责显示任何内容?它在哪里(因为它不在主方法中,也不是从主方法中调用的)?IMO,解决代码不起作用的唯一最重要的技术是读取它。说真的,你的问题中的程序中没有代码来执行你所说的:打印结果。@catman2我刚刚意识到你问了三次同样的问题。这不是寻求帮助的正确方式。我将每个问题都标记为这一问题的副本,但以后请不要多次发布同一问题。评论不用于扩展讨论;这段对话已经结束。