继续询问输入是否已知输入

时间:2018-10-17 19:57:00

标签: java loops hashmap

我有这个代码

public void givenLetter(){
        givenLetter = player1.giveLetter();
        if(guessedLetters.containsKey(givenLetter)) {
            return;
        }
}

如果返回的字母已经在guessedLetters哈希图中已知,则需要继续执行player1.giveLetter()

例如:

guessedLetters = {“ A”,“ B”}

player1.giveLetter()返回“ A”

运行player1.giveLetter()

player1.giveLetter()再次返回“ A”

运行player1.giveLetter()

player1.giveLetter()返回“ C”

执行其余方法

2 个答案:

答案 0 :(得分:1)

类似这样的循环:

public void givenLetter(){
    while (true) {
        String givenLetterString = player1.giveLetter();
        if(!guessedLetters.containsKey(givenLetterString)) 
            return;
    }
}

它将一直运行到集合中不存在该字母为止。

while (true)创建一个无限循环,并且只有在执行return语句后才会停止。

答案 1 :(得分:1)

如果我正确地阅读了您的问题,则希望继续运行giveLetter()函数,直到获得在guessedLetters映射中找不到的输入为止。

为此,我建议使用while循环。 while循环将运行,直到给定条件为false

例如:

int i = 0;
while(i / 2 != 1) {
    i ++;
}

此循环将在i /2 != 1为真时运行。对于i = 0和i = 1来说是正确的,而对于i = 2则是false-因此它将停止。

因此,鉴于您的问题,我建议:

public void givenLetter(){
    String givenLetter = player1.giveLetter(); // Get the letter
    while (guessedLetters.containsKey(givenLetter)) {  // While the given letter is found, continue to run the method.
        givenLetter = player1.giveLetter();
    }  // Exit the loop once the given letter is not found
    // Rest of function here
}