- 해야 할 목록
------------------------------------------------------- 🔻 특정상태의 수강생 정보 출력 - 무한 반복을 하면서 상태를 입력(자동으로 대문자로 인식) - 상태(green, yellow, red) 중에서만 입력받아야 함 - 고유번호가 등록되지 않은 번호를 입력받으면 루프에서 나감 - 특정 상태인 수강생 정보를 출력 -------------------------------------------------------
while문으로 무한반복하면서 입력 받기
Status statusToQuery = null;
while (statusToQuery == null) {
System.out.print("조회하고자 할 상태를 입력해주세요(GREEN, RED, YELLOW) : ");
String statusInput = scanner.nextLine().toUpperCase();
try {
statusToQuery = Status.valueOf(statusInput);
} catch (IllegalArgumentException e) {
System.out.println("잘못되 상태 입력하셨습니다. GREEN, RED, YELLOW 중에서 선택해 주세요.");
}
}
특정 상태인(green, red, yellow) 중에서 입력받아서 특정 상태에 해당하는 수강생 정보 출력
// 특정 상태에 해당하는 수강생을 조회
boolean found = false;
System.out.println(statusToQuery + "에 해당하는 수강생들의 정보 : ");
for (Object object : studentMap.values()) {
if (object instanceof Student) {
Student student = (Student) object;
if (student.getStatus() == statusToQuery) {
System.out.println("ID: " + student.getStdNo() +
", 이름: " + student.getName() +
", 상태 : " + student.getStatus() +
", 과목 : " + student.getSubList());
found = true;
}
} else {
System.out.println("예상하지 못한 타입 입니다.");
}
}
if (!found) {
System.out.println(statusToQuery + " 상태에 해당하는 수강생이 없습니다.");
}