-2
누군가 아래 코드의 내부 루프가 종료되지 않는 이유를 알려 줄 수 있습니까? 사용자의 입력 값이 특정 값인지 아닌지를 확인하기 위해 내부 루프를 추가했습니다. 그렇지 않으면 올바른 입력을 묻는 메시지가 표시됩니다. 코드를 디버깅하고 값을 전달하는 경우 나 변수의 정확한 값을 알 수 있지는 않지만이를 종료 루프를 강제해야한다 :자바 무한 루프
while (finished.equalsIgnoreCase("n")) {
System.out.println("Enter a persons name");
names = in.nextLine();
writer.println(names);
System.out.println("Finished? (Y/N)");
finished = in.nextLine();
while(!finished.equalsIgnoreCase("y") || !finished.equalsIgnoreCase("n")) {
System.out.println("Invalid choice; (Y/N)");
finished = in.nextLine();
}
}
'|| '를'&&'로 변경하십시오. 논리적 OR을 사용하면 언제나 다른 것과 다를 수 있으므로 루프를 종료하지 마십시오. – AntonH
또는 de morgans에 의해, 당신은'! (finished.equalsIgnoreCase ("y") || ! finished.equalsIgnoreCase ("n"))'' –