2016-11-18 10 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()がtrueを返すとき壊すゲームでwhileループを使用することができます。 isValid()が偽の値を返した場合は、関数ゲームを呼び出すこともできます。今ではブール値を要求しますが、使用しません。それが何を返しても、あなたの価値に正しい長さが含まれている限り、ゲームは終了します。

関連する問題