그래서 사용자가 부울로 대답을 입력하고 오류를 확인하도록 시도하고 있지만 작동하지 않는 것 같습니다. 올바른 방향으로 가고 있습니까, 아니면 이것을 할 수있는 더 좋은 방법이 있습니까? 나는 "거짓"나는 "true"로하고 지정이 다른 문자열에 대해 그것을 확인 만 입력 문자열입니다 그 일을하고 생각 만했던 내 while 루프 :자바 부울 입력 오류 검사
while (!continueGame.equalsIgnoreCase(answerTrue) && !continueGame.equalsIgnoreCase(answerFalse)) {
System.out.println("Would you like to try again? (true/false)");
continueGame = keyboard.nextBoolean();
System.out.println();
}
중 하나가 작동하지 않았다. 나는 그것이 내 안의 것과 관련이 있다고 확신하지만, 나는 왜 확신하지 못한다. 어쨌든, 문자열 대신 boolean을 사용하여 오류를 검사하는 방법은 다음과 같습니다. 문자열 버전은 기본적으로 동일한 방법 이었지만 문자열에 대해 수정되었습니다.
public static boolean continueGame() {
boolean continueGame;
System.out.println("Would you like to try again? (true/false)\n");
continueGame = keyboard.nextBoolean();
System.out.println();
while (continueGame != true && continueGame != false) {
System.out.println("Would you like to try again? (true/false)");
continueGame = keyboard.nextBoolean();
System.out.println();
}
if (continueGame) {
return true;
}
else {
System.out.println("We accept your surrender.");
return false;
}
} //End continueGame method
정확하게 작동하지 않는 것에 대해 더 구체적으로 설명 할 수 있습니까? 또한 코드를 더 건조하게 유지하려면 사후 점검 루프를 사용하고 루프 전에 블록을 제거하는 것이 좋습니다. – mstbaum
[이 답변] (http://stackoverflow.com/questions/28244832/java-loop-not-resetting/)을보고 도움이되는지 확인하십시오. continueGame! = true && continueGame! = false로 부울 값이 "참이 아니고 거짓이 아닌가?"때문에 이상한 일을하고 있습니까? 부울은 true 또는 false이고, 확장은 true 또는 false가 아닙니다. – MarsAtomic