2016-11-18 224 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()返回一个假值,你也可以调用函数游戏。现在你要求一个布尔值,但是你不使用它。无论它返回什么,只要你的价值包含正确的长度,游戏就结束了。