Печать заявления только один раз в цикле

1

Это, вероятно, очень просто, однако я полностью замалчиваю и ценю некоторые указатели. Я создаю небольшую игру, которую мы назначили, когда мы выбираем числа, и затем вам предоставляется целевой номер, чтобы попытаться достичь числа, который мы выбрали. Внутри цикла while, когда мое состояние достигает 6, оно запрашивает у пользователя, чтобы он сгенерировал целевой номер, однако как только они это сделают, он снова напечатает ту же строку "Сгенерируйте окончательную строку", как мне печатать это только один раз?

Вот код, если это поможет.

while (lettersSelected == false) {

            if (finalNum.size() == 6) {
                System.out.println("3. Press 3 to generate target number!");

            } // Only want to print this part once so it does not appear again.


            Scanner input = new Scanner(System.in);

            choice = input.nextInt();

            switch (choice) {
            case 1:
                if (finalNum.size() != 6) {
                    largeNum = large.get(r.nextInt(large.size()));
                    finalNum.add(largeNum);
                    largeCount++;
                    System.out.println("Numbers board: " + finalNum + "\n");
                }

                break;
Теги:
loops
printing
while-loop

3 ответа

0
Лучший ответ

Это можно сделать очень легко.

boolean isItPrinted = false;

while (lettersSelected == false) {

            if ((finalNum.size() == 6) && (isItPrinted == false)) {
                System.out.println("3. Press 3 to generate target number!");
                isItPrinted = true;
            }
0

Вы можете добавить переменную флага и установить ее в значение true, добавить проверку для этой переменной в if contidion, и если введено предложение if-clause, установите для переменной значение false:

boolean flag = true;

while (lettersSelected == false) {

    if (finalNum.size() == 6 && flag) {
        System.out.println("3. Press 3 to generate target number!");
        flag = false;
    }

    // ...
}
0

Условие if (finalNum.size() == 6) выполняется первым, и поэтому строка печатается. Однако, во время следующей итерации в while цикла, размер finalNum не изменился, как противное условие проверяется в case 1 переключателя и размера не меняется где -то между этими двумя утверждениями.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню