是否可以循环使用不同参数的方法?

时间:2014-10-29 13:26:25

标签: java loops methods compare

所以情况就是这样。

我正在做一个练习,我必须将每个随机数与外部文件中的所有静态数字进行比较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”或者我应该做些什么来使其工作?

6 个答案:

答案 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。