2016-11-18 181 views
-2

如果你插入一個無效的輸入即(333)它會提示你改變你的猜測,我建立一個代碼猜測遊戲。然而在猜測#2猜想#1這隻作品 - #6它將讓任何無效的輸入經過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()返回一個真正的遊戲中使用while循環。如果isValid()返回一個假值,你也可以調用函數遊戲。現在你要求一個布爾值,但是你不使用它。無論它返回什麼,只要你的價值包含正確的長度,遊戲就結束了。