JAVA: игра Палач, она мне нужна, чтобы раскрыть только первое появление догадки - PullRequest
0 голосов
/ 06 мая 2018

Я вношу вступительный класс в Java, и у нас есть проект, посвященный игре в палач. У меня большая часть кода проработана, но я не могу заставить эту часть работать так, как я хочу. Во-первых, программа запрашивает у пользователя письмо, мне нужно, чтобы он обнаружил только первый раз, когда буква входит в слово. скажем, слово «яблоко», и я ввожу p, я просто хочу пойти _ p _ _ _ вместо _ pp _ _. Я думаю, что мне нужно использовать indexof или что-то подобное, но я мог бы использовать некоторую помощь в определении того, что использовать и как его применять.

 for (int i = 0; i < word.length(); i++) { //check if the letter is correct
            if (word.charAt(i) == letter && wordToShow.charAt(i) == '_') 
            {   //checking only free spaces _
                System.out.println("Good!");
                wordToShow.setCharAt(i, letter);  //change '_' to the letter guessed
                guessed += letter;                  //save the letter
                guessed += '+';                     //mark the success
                if (wordToShow.indexOf("_") == -1) 
                {   //if there more unsolved letters?
                    return true;        //there is no '_' symbols, all letters on their places
                }      

1 Ответ

0 голосов
/ 06 мая 2018

Все, что вам нужно сделать, это прекратить проверку, как только вы ее нашли. Просто вставьте оператор break в блок if после всего остального, и он выйдет из цикла for и прекратит проверку последующих букв:

for (int i = 0; i < word.length(); i++) { //check if the letter is correct
        if (word.charAt(i) == letter && wordToShow.charAt(i) == '_') 
        {   //checking only free spaces _
            System.out.println("Good!");
            wordToShow.setCharAt(i, letter);  //change '_' to the letter guessed
            guessed += letter;                  //save the letter
            guessed += '+';                     //mark the success
            if (wordToShow.indexOf("_") == -1) 
            {   //if there more unsolved letters?
                return true;        //there is no '_' symbols, all letters on their places
            }      
            break;
        }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...