|| 사용 동작이 매우 혼란 스럽습니다. .equals 함수에 대한 연산자. 문자열 등에서 사용할 수없는 이유가 있습니까?Java while while 루프를 만드는 문자열 테스트가 다르게 작동합니다.
이 작품 :
do{
System.out.println("Play again? [Y/N]");
//input: Y
play = in.nextLine();
play = play.toUpperCase();
}
while(!"Y".equals(input)); //breaks out of loop (as it should)
왜하지 않습니다이 작품!
do{
System.out.println("Play again? [Y/N]");
//input: Y
play = in.nextLine();
play = play.toUpperCase();
}
while(!"Y".equals(input) || !"N".equals(input)); //infinite loop
'||'는 단락 회로 연산자입니다. 사실 일 때까지 테스트 할 것입니다. 그래서, 그것은 처음에'! "Y". equals (input)'이 거짓임을 알아내어 다음 문장을 테스트합니다. 이 경우,'Y'가'N'이 아니기 때문에 항상 참일 것입니다. –
'N' 전에'!'를 제거해야합니다. –
'input' 값은 루프에서 변경되지 않습니다. – saka1029