Продолжайте запрашивать ввод, если вход уже известен - PullRequest
0 голосов
/ 17 октября 2018

У меня есть этот код

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

Необходимо продолжать делать player1.giveLetter(), если возвращаемая буква уже известна в хэш-карте guessedLetters.

Например:

guessedLetters = {"A", "B"}

player1.giveLetter () возвращает "A"

run player1.giveLetter ()

player1.giveLetter () снова возвращает «A»

run player1.giveLetter ()

player1.giveLetter () возвращает «C»

делать остальныеметод

Ответы [ 2 ]

0 голосов
/ 17 октября 2018

Если я правильно читаю ваш вопрос, вы хотите продолжить выполнение функции giveLetter(), пока не получите ввод, который не найден на карте guessedLetters.

Для этого япредложил бы использовать цикл while.Цикл while будет выполняться до тех пор, пока заданное условие не станет false.

Например:

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

Этот цикл будет выполняться, пока i /2 != 1 имеет значение true.Что будет верно для i = 0 и i = 1, и false для i = 2 - так что это остановится.

Итак, учитывая вашу проблему, я бы предложил:

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
}
0 голосов
/ 17 октября 2018

Примерно так:

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

Он будет работать до тех пор, пока в коллекции не будет буквы.

while (true) создает бесконечный цикл, и он остановится только в случае выполнения оператора return.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...