2014-03-19 211 views
1

這可能非常簡單,但是我已經完全清空並且會感激一些指針。我正在創建一個小型遊戲,我們已經分配了我們選擇數字的地方,然後提供了一個目標數字來嘗試使用我們選擇的數字。在我的while循環中,一旦我的條件達到6,它會要求用戶生成目標編號,但是一旦它們再次打印相同的字符串「生成最終字符串」,我該如何只打印一次?在while循環中只打印一次語句

這是代碼,如果它會幫助。

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; 
+0

不能你根本在週期之前把它放在外面? – noidraug

+0

也許我誤解了一些東西,但是爲什麼不在錯誤值的前面聲明布爾值,在if中檢查它並在輸入if語句時將其設置爲true? – user2424380

回答

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

首先滿足條件if (finalNum.size() == 6),然後打印字符串。但是,在while循環的下一次迭代過程中,finalNum的大小沒有改變,因爲在交換機的case 1中檢查了相反的條件,並且大小在這兩個語句之間的任何地方都沒有改變。

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; 
    } 

    // ... 
}