2014-01-25 19 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结束计算。