首页 > 解决方案 > 以输入结束数组

问题描述

我是 java 新手,我目前正在尝试制作一个使用 10 个输入姓名和年龄的数组的程序。我想要做的是添加一个选项,这样如果用户在提示输入姓名时键入“完成”,程序将直接跳到列出已经输入的姓名和年龄。

代码:

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();
            System.out.print("Enter the persons's age: ");
            int age = (Integer) input.nextInt();
            persons[i] = new Person(person, age);
        }
        
        Arrays.sort(persons);

        System.out.print("Name" + "\tAge");
        System.out.print("\n----" + "\t----\n");

        for (int i = 0; i < persons.length; i++) {
            System.out.println(persons[i].person + "\t" + persons[i].age);
        }

        System.out.println("The oldest person is: " + persons[numofpeople-1].person);
        System.out.println("The youngest person is: "+ persons[0].person);

    }

}

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

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

我在想的是我需要使用一个布尔 if 语句来定义是否已输入 done,如果已输入,则程序会跳过询问用户其余的姓名和年龄,而是跳转到打印已经输入的。我不确定这一点,任何帮助将不胜感激!

标签: java

解决方案


您的想法是正确的,最简单的方法是检查是否person等于"done"。如果这是真的,break循环和代码应该继续,它应该产生你想要的结果。


推荐阅读