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我刚刚意识到你问了三次同样的问题。这不是寻求帮助的正确方式。我将每个问题都标记为这一问题的副本,但以后请不要多次发布同一问题。评论不用于扩展讨论;这段对话已经结束。