所以情况就是这样。
我正在做一个练习,我必须将每个随机数与外部文件中的所有静态数字进行比较lotto.dat
我必须创建一个返回true或false的方法doCompare()
。我的问题将出现在我的代码之后:
public static void drawNumbers()throws Exception{
Random rnd = new Random();
int rndN1 = rnd.nextInt(19)+1;
int rndN2 = rnd.nextInt(19)+1;
int rndN3 = rnd.nextInt(19)+1;
int rndN4 = rnd.nextInt(19)+1;
int rndN5 = rnd.nextInt(19)+1;
int rndN6 = rnd.nextInt(19)+1;
System.out.println();
System.out.println("Winner numbers: " + rndN1 + " " + rndN2 + " " + rndN3 + " " + rndN4 + " " + rndN5 + " " + rndN6);
String match = doCompare(rndN1);
if(match.equals("true")){
System.out.println("Match on the number: " + rndN1);
}
}
所以有可能以某种方式使用参数“doCompare(rndN1)”然后rndN2,rndN3等循环“doCompare”或者我应该做些什么来使其工作?
答案 0 :(得分:1)
使用适当的数据结构,如数组或List
来存储随机数并循环遍历它们:
List<Integer> numbers = new ArrayList<>();
for(int cout = 0 ; count < 6 ; ++count) {
numbers.add(rnd.nextInt(19)+1);
}
// ...
for(int n : numbers) { // go through all the numbers in the list
doCompare(n);
}
答案 1 :(得分:0)
最简单的解决方案是创建数组或列表并存储rnd数,然后循环它
答案 2 :(得分:0)
是的,你可以,但不是你想做的。
你必须创建一个rndNX值列表
像这样:
List<Integer> rndList = new ArrayList<Integer>();
像这样填写:
rndList.add(rnd.nextInt(19)+1);
rndList.add(rnd.nextInt(19)+1);
...
并使用列表:
for(final Integer rndI : rndList)
{
String match = doCompare(rndI );
}
答案 3 :(得分:0)
Random rnd = new Random();
System.out.println();
for(int i = 0; i < 6; i++)
{
int rndN = rnd.nextInt(19)+1;
String match = doCompare(rndN);
if(match.equals("true")){
System.out.println("Match on the number: " + rndN1);
}
}
你可以这样做。而不是初始化所有随机数,首先根据需要在循环中初始化它们。
答案 4 :(得分:0)
将int值存储到数组或列表中并循环遍历它。
答案 5 :(得分:0)
创建一个可以收集整数的List。创建一个循环,创建整数并将它们添加到列表中。在创建随机整数时,您也可以在循环中创建输出字符串。最后,为方法调用doComapre()
使用另一个循环,并将doCompare()
方法的返回值更改为boolean
。然后你可以在if语句中使用它,而不是检查返回值是否等于"true"
。
Random rnd = new Random();
List<Integer> rndNumbers = new ArrayList<>();
String outputString = "Winner numbers:";
for(int i = 0; i < 6; i++)
{
rndNumbers.add(rnd.nextInt(19) + 1);
outputString = outputString + " " + rndNumbers.get(i);
}
System.out.println();
System.out.println(outputString);
for(Integer curNumb : rndNumbers)
{
String match = doCompare(curNumb );
if (match.equals("true"))
{
System.out.println("Match on the number: " + curNumb );
}
}
也许您可以使用数组,因为您总是希望生成六个数字。对于String创建,您可以使用Stringbuilder替换String。