【发布时间】:2023-03-25 04:34:01
【问题描述】:
我的循环无法识别它需要退出。 任何帮助表示赞赏。
public static void main(String[] args) {
Scanner kbd = new Scanner(System.in);
String name;
int residentLoopNumber = 0;
boolean ifResidentFound = false;
boolean ifUserQuit;
Resident[] residents = new Resident[6];
residents[1] = new Resident("Kelly Ocean", "72", "female", "102", "C", false);
residents[2] = new Resident("Sean White", "99", "male", "302", "A", true);
residents[3] = new Resident("Elias Abiadal", "66", "male", "666", "A", true);
residents[4] = new Resident("Terry Goldsmith", "94", "male", "471", "B", false);
residents[5] = new Resident("Sarah Young", "90", "female", "111", "C", true);
//prompting user to enter resident name
System.out.print("Please enter a resident's name: ");
name = kbd.nextLine();
//checking if user entered exit keyword
ifUserQuit = ifQuit(name);
do {
//checking if entered name matches any in the list.
for (int i = 1; i < residents.length; ++i) {
if (residents[i].getName().toLowerCase().equals(name.toLowerCase())) {
residentLoopNumber = i;
ifResidentFound = true;
}
}
//loop prompting user to enter name again
while (!ifResidentFound) {
System.out.println("<" + name + ">" + " is not on record.");
System.out.print("Please enter a resident's name: ");
name = kbd.nextLine();
ifUserQuit = ifQuit(name);
}
for (int i = 1; i < residents.length; ++i) {
if (residents[i].getName().toLowerCase().equals(name.toLowerCase())) {
residentLoopNumber = i;
ifResidentFound = true;
}
}
//displaying resident information
System.out.print(residents[residentLoopNumber].toString());
} while (!ifUserQuit);
}
public static boolean ifQuit(String input) {
return input.toLowerCase().equals("exit");
}
}
如果用户输入“退出”,我的循环应该结束 但是,当输入退出时,我得到了这个输出。有什么想法吗?
请输入居民姓名:exit 没有记录在案。 请输入居民姓名:
【问题讨论】:
标签: java loops while-loop boolean