我一直试图模仿像彩票一样的东西。 我告诉java运行while循环,直到变量playCount等于1000.这是我的代码:
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 eclipse的控制台中不打印任何信息或统计信息。它说“PlaySimLoop(java application)”后跟一条路径,保存在我的电脑上。
感谢帮助! 泰勒
答案 0 :(得分:1)
您的循环条件错误
while (playCount > 1000) {
当变量大于1000时运行。但它从0开始......所以循环永远不会运行。你可能想要:
while (playCount < 1000) {
当变量小于1000时将运行。
此外,这个模糊:
if (playCount == 1000) {
break;
}
是否必要。此答案中定义的循环条件将在999之后自动停止。这意味着如果您每次只是将计数器增加1,则此条件永远不会为真。
答案 1 :(得分:0)
您可能希望将System.out.println
移出while循环。
someNumber = (someNumber + 1)
可以写为someNumber += 1
或使用后缀增量运算符:someNumber++
。而不是使用另一个if条件,你可以使用else块。
if (yourNumber == winningNumber) {
winCount++;
} else {
loseCount++;
}
loseCount
也可以在playCount - winCount
结束时计算。