簡體   English   中英

在while循環中僅打印一次語句

[英]Printing a statement only once in a while loop

這可能很簡單,但是我已經完全空白了,不勝感激。 我正在創建一個小游戲,我們已經分配了一個數字,您可以在其中選擇數字,然后提供一個目標數字,以嘗試使用選擇的數字達到目標。 在我的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;

這可以很容易地完成。

boolean isItPrinted = false;

while (lettersSelected == false) {

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

首先滿足條件if (finalNum.size() == 6) ,因此將字符串打印出來。 但是,在while循環的下一次迭代期間, finalNum的大小沒有更改,因為在開關的case 1中檢查了相反的條件,並且在這兩個語句之間的任何位置都沒有更改大小。

您可以添加一個標志變量並將其設置為true ,在if條件中添加對該變量的檢查, if-clause輸入了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;
    }

    // ...
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM