gpt4 book ai didi

java - 如何更新java对象数组中的变量

转载 作者:行者123 更新时间:2023-12-05 05:13:07 25 4
gpt4 key购买 nike

我正在创建一个成员应用程序,使用扫描器将数据输入到一个名为 memberList 的数组中。数据进入对象,然后对象存储在数组中。我在对象中使用字符串和整数。

我正在编写一种方法,将数组中的一个字符串变量从 yes 更改为 no,即成员(member)是否已支付费用。

我正在尝试通过调用我的 getName 方法并使用 setFeePaid 将字符串从“否”更改为"is"来输入成员姓名。

循环有问题,因为它只允许我更改数组中的第一个成员。谁能帮忙。

public static void payMemberYearlyFees(){
for (int i=0; i < memberCount; i++) {
Member member = memberList[i];

System.out.println("Enter the name of the member who has to pay their fee:");

if (input.nextLine().equals(member.getName())) {
member.setFeePaid("yes");
System.out.println();
System.out.println(member.getName() +" has paid their membership fee.\n");
System.out.println("********Returning to Main Menu.********\n");
}
else{
System.out.println();
break;
}
}
}

最佳答案

在您的 for 循环中,您首先获取一个成员(列表中的第一个成员),然后要求用户输入姓名。然后它会检查输入名称是否与您选择的成员相同(记住,只有列表的第一个)。如果您输入任何其他名称,则 if 语句将失败,您将转到 else block ,这将停止循环。

这应该有效:

public static void payMemberYearlyFees(){
System.out.println("Enter the name of the member who has to pay their fee:");
String inputName = input.nextLine();

for (int i=0; i < memberCount; i++) {
Member member = memberList[i];

if (inputName.equals(member.getName())) {
member.setFeePaid("yes");
System.out.println();
System.out.println(member.getName() +" has paid their membership fee.\n");
System.out.println("********Returning to Main Menu.********\n");
break;
}
}
}

然后根据需要多次调用此方法。如果你想让你的代码更简洁一些,你可以这样执行 for 循环:

for (Member member : memberList){
if (inputName.equals(member.getName())) {
member.setFeePaid("yes");
System.out.println();
System.out.println(member.getName() +" has paid their membership fee.\n");
System.out.println("********Returning to Main Menu.********\n");
break;
}
}

这样一来,您只需一个接一个地获取列表中的成员,而无需处理 i 变量并手动选择列表中的第 i 个成员。

关于java - 如何更新java对象数组中的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53958288/

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