2014-01-25 24 views
0

我一直在嘗試模擬像彩票一樣的東西。 我對java的,直到可變playCount等於1000。這裏是我的代碼運行while循環:如何退出循環,然後打印文本

package problemset.leveltwo; 

import java.util.*; 
public class PlaySimLoop { 

public static void main(String[] args) { 
    Random random = new Random(); 

    int High = 100; 
    int Low = 10; 
    int playCount = 0; 
    int winCount = 0; 
    int loseCount = 0; 

    while (playCount > 1000) { 
     int yourNumber = random.nextInt(High - Low) + Low; 
     int winningNumber = random.nextInt(High - Low) + Low; 

     if (yourNumber == winningNumber) { 
      winCount = (winCount + 1); 
     } 

     if (yourNumber != winningNumber) { 
      loseCount = (loseCount + 1); 
     } 

     playCount = (playCount + 1); 

     if (playCount == 1000) { 
      break; 
     } 

System.out.println("You Won " + winCount + " Times"); 
System.out.println("You Lost" + loseCount + " Times"); 

     } 

} 

} 

後,我跑它打印在java中日食的控制檯沒有信息或統計數據的程序。它說「PlaySimLoop(java應用程序)」,後面跟着一個路徑,它保存在我的電腦上。

幫助表示讚賞! 泰勒

回答

1

你的循環條件是錯誤的

while (playCount > 1000) { 

會運行,而變量大於1000但它開始於爲0 ......如此循環將永遠不會運行。你可能想:

while (playCount < 1000) { 

而變量小於1000

而且這將運行,這導語:

if (playCount == 1000) { 
    break; 
} 

是不必要的。此答案中定義的循環條件將在999之後自動停止。如果您每次只需將計數器加1,就意味着此條件永遠不會成立。

+0

謝謝!我只用了休息時間;因爲我無法退出循環。 – TylerRutherford120

+0

還有一件事。我只希望控制檯打印一次統計數據。我改變了程序,它的工作,但現在控制檯打印1000次統計。實際的System.out.println(「You Won」+ winCount +「Times」)不在wile循環中,並且對於loseCount是否正確? – TylerRutherford120

+0

是的,它是while循環的一部分。 – Kon

0

您可能需要將System.out.println移出while循環。

someNumber = (someNumber + 1)可以寫成someNumber += 1或使用後綴增量運算符:someNumber++。如果不使用其他條件,則可以使用else塊。

if (yourNumber == winningNumber) { 
    winCount++; 
} else { 
    loseCount++; 
} 

loseCount也可以在從playCount - winCount結束計算。