[英]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.