【问题标题】:Printing a statement only once in a while loop在 while 循环中仅打印一次语句
【发布时间】:2014-03-19 14:08:10
【问题描述】:

这可能很简单,但是我已经完全空白并且希望得到一些指示。我正在创建一个小游戏,我们分配给我们选择号码,然后提供一个目标号码以尝试使用我们选择的号码到达。在我的 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;

【问题讨论】:

  • 就不能简单的放在while之前,循环之外吗?
  • 也许我理解错了,但是你为什么不在 while 之前声明一个带有 false 值的布尔值,在你的 if 中检查它并在你输入 if 语句时将它设置为 true 呢?跨度>

标签: java loops printing while-loop


【解决方案1】:

这很容易做到。

boolean isItPrinted = false;

while (lettersSelected == false) {

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

【讨论】:

    【解决方案2】:

    首先满足条件if (finalNum.size() == 6),然后打印字符串。但是,在while 循环的下一次迭代中,finalNum 的大小没有改变,因为在开关的case 1 中检查了相反的条件,并且在这两个语句之间的任何地方都没有改变大小。

    【讨论】:

      【解决方案3】:

      您可以添加一个标志变量并将其设置为true,在if 条件中添加对该变量的检查,如果输入了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;
          }
      
          // ...
      }
      

      【讨论】:

        猜你喜欢
        • 2021-08-07
        • 1970-01-01
        • 1970-01-01
        • 2015-06-12
        • 2021-06-30
        • 1970-01-01
        • 2021-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多