使用math.random和while循环的简单Java彩票模拟器?

使用math.random和while循环的简单Java彩票模拟器?,java,loops,while-loop,Java,Loops,While Loop,如何设置while循环的格式以检查重复项,如果存在重复项,则不返回该数字 可以使用集合集合存储唯一值。方法add() 如果此集合尚未包含指定的元素,则返回true 例如: publicstaticvoidmain(字符串[]args){ 最终int池1=68; 最终int POOL2=25; int i=0; Set ballSet=新HashSet(); 而(i

如何设置while循环的格式以检查重复项,如果存在重复项,则不返回该数字


可以使用集合集合存储唯一值。方法
add()
如果此集合尚未包含指定的元素,则返回
true

例如:

publicstaticvoidmain(字符串[]args){
最终int池1=68;
最终int POOL2=25;
int i=0;
Set ballSet=新HashSet();
而(i<5){
长球=数学圆(POOL1*Math.random())+1;
如果(!ballSet.add(ball)){
继续;
};
i++;
}
long pball=Math.round(POOL2*Math.random())+1;
while(ballSet.contains(pball)){
pball=Math.round(POOL2*Math.random())+1;
}
String winner=ballSet.stream().map(对象::toString.collect(加入(“,”));
System.out.println(“您的中奖号码是:“+winner”);
System.out.printf(“并且powerball是:%d”,pball);
}
}

取决于您试图避免重复的内容。您甚至可能不需要
while
循环。我希望避免前5个数字(ball1、ball2…ball5)重复,是的,我应该使用while循环来解决问题,但似乎无法解决它。而不是使用单个
int
变量
ball1
ball2
,等等。,尝试将数字放入
int
数组
int[]balls
中,这样您就可以轻松地对它们进行迭代以检查重复项。记录您成功绘制的球数,每次选择新的随机数时,搜索先前绘制的球,确保新的球不是重复的。
while
循环将一直进行,直到您成功绘制5个唯一的数字。出于我的课程目的,我也不能使用数组,因为我们还没有达到该点。所以,如果有意义的话,我想找到一种方法来检查每个变量是否重复。感谢您的帮助通过检查每个球是否与所有编号较低的球不同,您可以确保有五个唯一的球;i、 e.
ball2!=ball1
ball3!=球2和球3!=ball1
,等等。您可以在一个大循环中同时绘制和测试所有五个球,或者在四个较小的循环中分别绘制和测试球2到5,由您选择。LotterySimulator.java:25:error:找不到符号集ballSet=new HashSet();^symbol:class Set location:class LotterySimulator LotterySimulator.java:25:错误:找不到符号集ballSet=new HashSet();^符号:类HashSet位置:类LotterySimulator 2错误任何想法?导入java.util.HashSet;导入java.util.Set;当我现在编译我的程序时,我没有得到任何错误。然而,我也没有得到任何输出。我必须有“System.out.printf”(“您的中奖号码是:%d、%d、%d、%d、%d”,ball1、ball2、ball3、ball4、ball5”);System.out.printf(“而强力球是:%d”,pball);“我感谢您的帮助。然而,set和haset-util会导致错误,因为我的类还没有涵盖这些主题。如果你不能/不想没有这些,我理解,但是谢谢你
 import java.util.Scanner;

public class LotterySimulator 
{
   public static void main(String[] args)
   {
      final int POOL1 = 68;
      final int POOL2 = 25;

      long ball1, ball2, ball3, ball4, ball5, pball;

      ball1 = Math.round(POOL1*Math.random()) + 1;
      ball2 = Math.round(POOL1*Math.random()) + 1;
      ball3 = Math.round(POOL1*Math.random()) + 1;
      ball4 = Math.round(POOL1*Math.random()) + 1;
      ball5 = Math.round(POOL1*Math.random()) + 1;
      pball = Math.round(POOL2*Math.random()) + 1;