Java 以输入结束数组
我是java新手,目前正在尝试制作一个使用10个输入姓名和年龄的数组的程序。我想做的是添加一个选项,这样当提示用户输入姓名时,如果用户键入“done”,程序将直接跳到列出已经输入的姓名和年龄 代码: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.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);
}