나는 사용자가 색상을 추측하는 행맨 게임을 만들고 있습니다. 내가 원하는 일은 : 사용자가 5 개 이상을 잘못 읽으면 (5 개의 힌트 모두를 읽었을 때), 사용자가 길을 잃었다는 내용이 표시됩니다. while 루프가 끝난 후 (단어가 정확하거나 5 가지 힌트를 모두 읽은 후), 그것은 당신에게 승리 여부를 알려 주어야합니다. 이 수행하는 코드의 일부입니다 :While Loop 인쇄 문장을 영원히 반복 할 때
public static void main(String[] args){
Scanner in = new Scanner(System.in);
String color = getColor();
String result = EmptyStr(color);
String[] hints = getHints(color);
System.out.println("Please enter a letter:");
char letter = in.next().charAt(0);
//-----------------------------------------------------------
int wrong = 0;
while (wrong<6){
if (checkLetter(color, letter)){
// result was previously defined elsewhere so don't worry about it
result = Result(color, result, letter);
System.out.println("Correct guess! here is your word so far: " + result);
System.out.println("Lifelines left: " + (5 - wrong));
if (result.equals(color)){
System.out.println("congratulations! You Won!");
break;
}
}
else{
wrong ++;
System.out.println(hints[0]);
System.out.println("Lifelines left: " + (5 - wrong));
}
}
// also not sure what to put here after player wins or loses: System.out.println("Sorry! You lost! The correct word was: " + color);
} result = Result(color, result, letter); System.out.println("Correct guess! here is your word so far: " + result); System.out.println("Lifelines left: " + (5 - wrong));
반복 영원히
그러나, 내가 입력 한 글자 한 번, 그것은 올바른. 나는 그것을 알고 싶어 : 그것은 왜 영원히 반복합니까? 또한 작동하려면 어떻게 수정해야합니까?
'checkLetter'가'true'를 리턴한다고 가정하면'result'가'color'와 같을 때'break' 만합니다 - 그렇지 않으면 루프 할 것입니다 –
@ScaryWombat 그러나 다른 문자를 다시 입력 할 수 없습니다. 문자가 –
인 경우이 경우에는 ** 귀하의 ** 로직을 정렬해야합니다. 어쩌면 당신은'char letter = in.next(). charAt (0);'을 루프 안으로 옮기기를 원할 것입니다. –