2016-11-18 2 views
-2

잘못된 코드를 삽입하면 (예 : (333)) 추측을 변경하라는 메시지가 표시됩니다. 그러나 추측 # 2에 대한 추측 # 1이 유일한 작품 - # 6은 유효하지 않은 입력이 모두 isValid()가 진정한를 반환 할 때 파괴 게임에서 while 루프를 사용할 수Java 루프가 한 번만 실행됩니다.

public void game(){ 
    System.out.println("Enter guess #" + (guessAtt + 1)); 
    guess = keyboard.next(); 
    guess = guess.toLowerCase(); 
    if(guess.equals(quit)){ 
     System.exit(0); 
    } 
    if (guess.length() < 2){ 
     System.out.println("Guess Too short try again");  
     game();  
    } 
    if (guess.length() > 3){ 
     System.out.println("Guess too long try again"); 
     game(); 
    } 
    letter1 = guess.charAt(0); 
    letter2 = guess.charAt(1); 
    letter3 = guess.charAt(2); 
    isValid(); 

} 
public boolean isValid(){ 


if (letter1.equals('a')|| letter1.equals('b')|| letter1.equals('c')|| letter1.equals('d')|| letter1.equals('e')){ 
     isValid1 = true; 
} 
if(letter2.equals('a')|| letter2.equals('b')|| letter2.equals('c')|| letter2.equals('d')|| letter2.equals('e')){ 
    isValid2 = true; 
} 
if(letter3.equals('a')|| letter3.equals('b')|| letter3.equals('c')|| letter3.equals('d')|| letter3.equals('e')){ 
    isValid3 = true; 
} 
if(isValid1 == true && isValid2 == true && isValid3 == true){ 
    isValid = true; 
} 
else { 
    isValid = false; 

} 


while (isValid == false){ 
    System.out.println("invalid input try again\n"); 
    game(); 

} 
return isValid; 
} 
+2

제공하신 코드에 루프가 없습니다. –

+5

루프가 어디 있습니까? – Berger

+0

'game()'이 루프에서 호출되고 OP가 그것을 제공하지 않은 것으로 보입니다. –

답변

2

을 통과하게됩니다. isValid()가 false 값을 반환하면 함수 게임을 호출 할 수도 있습니다. 이제 부울 값을 요청했지만 사용하지 마십시오. 반환 값에 상관없이 올바른 길이가 포함 된 값으로 게임이 종료됩니다.

관련 문제