我有这个代码
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”
执行其余方法
答案 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
}