以下代码仅检查 ArrayList 中的第一项。当我输入一个位于 ArrayList 但不在第一个位置的项目时,我收到错误消息“请输入有效名称”。我怎样才能解决这个问题?谢谢!这是我的代码: private ArrayList<Account> accounts = new ArrayList<>(); for(Account a : accounts) { while(true) { System.out.printf("Customer name: "); String customerName = scanner.next(); if(customerName.equals(a.getName())) { System.out.println("You entered " + a.getName()); break; } else { System.out.println("Please enter a valid name"); } } }
3 回答
PIPIONE
TA贡献1829条经验 获得超9个赞
你必须暂时休息。当您在列表上迭代时,您必须考虑逻辑。它可以像这样的代码;
ArrayList<Account> accounts = new ArrayList<>();
boolean isMatched = false;
while (true) {
for (Account account : accounts) {
System.out.printf("Customer name: ");
String customerName = scanner.next();
if (customerName.equals(account.getName())) {
isMatched = true;
break;
}
}
if (isMatched) {
System.out.println("You entered " + account.getName());
break;
}
System.out.println("Please enter a valid name");
}
PS: boolean找到结束while循环的客户名称时的值。
添加回答
举报
0/150
提交
取消