gpt4 book ai didi

java - 增加输入的数组索引

转载 作者:行者123 更新时间:2023-12-02 06:29:24 27 4
gpt4 key购买 nike

我正在寻找用户输入要输入到数组中的名称,然后程序将提供输入另一个名称的选项,因此我希望将第二个名称输入到数组中的下一个索引中。目前,我只能获取名称来填充数组的所有索引,或者只能获取它不断覆盖的第一个索引。

下面的代码将其写入所有索引:

while (nameArrayCount < 10) {
studentNamesArray[nameArrayCount] = studentName;
nameArrayCount++;
}

我明白为什么它会这样做,因为 nameArraycount 每次都会递增,并且它符合语句的条件,但我不知道如何让它退出 while 循环并递增该值。如果我尝试以下代码,程序会在输入名称后挂起 - 我假设这是由于它永远递增 nameArrayCount

while (nameArrayCount < 10) {
studentNamesArray[nameArrayCount] = studentName;
}
nameArrayCount++;

如何让程序仅在条件成立时输入新索引,然后增加 nameArraycount 并退出 while 循环? (如果用户随后选择输入另一个名称的选项,我想检查输入的名称是否少于 10 个)

我尝试使用 if 语句,但我只能让它填充数组中的第一个索引,如果用户输入第二个名称,它会继续覆盖该索引。

最佳答案

您确实应该避免这样做,而应采用 OOP 方法。

public class Student
{
private String firstName;
private String secondName;

public Student(String firstName, String secondName)
{
this.firstName = firstName;
this.secondName = secondName;
}
}

然后您可以简单地创建一个 Student 类型的数组,并根据需要填充它。

示例

Student[] students = new Student[10];
int position = 0;

String firstName = scanner.readLine();
String secondName = scanner.readLine();

students[position++] = new Student(firstName, secondName);

甚至更简单的是使用 List 实现。

示例

List<Student> students = new ArrayList<Student>();
String firstName = scanner.readLine();
String secondName = scanner.readLine();
students.add(new Student(firstName, secondName));

如果必须使用数组

您需要某种形式的占位符来保持您在数组中的位置。

int position = 0;

您还需要一个输入机制,我们假设它是扫描仪

studentNamesArray[position++] = scanner.readLine();

这将返回 position 的值(目前为 0),然后递增它,使其成为 1

这将防止它覆盖数组中的名称,因为索引总是在分配后直接增加。

关于java - 增加输入的数组索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20217560/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com