Java 以输入结束数组

Java 以输入结束数组,java,Java,我是java新手,目前正在尝试制作一个使用10个输入姓名和年龄的数组的程序。我想做的是添加一个选项,这样当提示用户输入姓名时,如果用户键入“done”,程序将直接跳到列出已经输入的姓名和年龄 代码: 导入java.util.array; 公共类数组2{ 公共静态void main(字符串[]args){ java.util.Scanner输入=新的java.util.Scanner(System.in); input.useDelimiter(System.getProperty(“line.s

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

代码:

导入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);
}
}

我的想法是,我需要使用一个布尔if语句来定义是否输入了done,如果输入了done,那么程序将跳过向用户询问其余的姓名和年龄,而是直接打印已经输入的姓名和年龄。我不确定这一点,因此,任何帮助将不胜感激

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

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

如果用户键入“完成”,这也会跳出for循环并继续打印列表:

for(int i=0;i
如果用户键入“完成”,这也会跳出for循环并继续打印列表:

for(int i=0;i
您可以这样做:

for(int i=0;i

如果用户输入
done
而不是任何名称,您的程序将直接列出已输入的名称和年龄。

您可以这样做:

for(int i=0;i

如果用户输入
done
而不是任何名称,您的程序将直接列出已输入的名称和年龄。

听起来您已经找到了解决方案。如果用户键入“Done”并且您的布尔检查为true,那么我最简单的做法就是使用
break
将语句从循环中“break”出来。使用
do…while
while
循环,您可能会想出一个更简洁的解决方案。基本上,您是正确的-您需要一个if条件来检查预期值。要比较字符串,请使用
equals
-方法。类似于
if(person.equals(“done”){break;}
。在while循环中使用List和prompt并将其添加到列表中。当输入为-1或任何其他类似于“done”的内容时,中断while循环。另外,
nextInt()
返回一个
int
,因此对
整数的转换是不必要的。这回答了你的问题吗?听起来你是解决问题的最佳方法。如果用户键入“Done”并且你的布尔检查是真的,我会做的最简单的事情就是“break”使用
break
进行循环外语句。使用
do…while
while
循环,您可能会想出一个更简洁的解决方案。基本上,您是正确的-您需要一个if条件来检查期望值。要比较字符串,请使用
equals
-方法。类似
的方法
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);
    }
}
    for (int i = 0; i < numofpeople; i++) {
        System.out.print("Enter the person's name: ");
        String person = input.next();

        if(person == "done"){break;}

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