我正在写一个上课的程序。这是一个彩票游戏。这是给出的问题:

编写一个Java程序。程序应具有一个名为lotteryNumber()的方法,该方法应接受两个整数(最大和最小数字),并应随机生成并返回这两个数字(包括两个数字)之间的数字。

另外,提供一种名为checkWinner()的方法,该方法应接受两个数组(一个用于彩票号码)
和一个用于用户编号),并检查它们是否相同(相同的编号和顺序)。如果他们是
同样,它应返回true,否则应返回false。请使用您自己的逻辑来检查是否相等
使用相等运算符。不允许使用诸如Arrays.equals()之类的预构建函数!

在main方法中,使用lotteryNumber()方法随机生成4个数字,介于0到10(包括两者)之间。然后要求用户从键盘输入0到10之间的4个数字。然后使用checkWinner()方法检查并显示用户是否是赢家。

我的问题是lotteryNumber方法。我应该如何只返回一个数字而不使用数组而仍然生成4个数字?请记住,我通常是数组和Java的新手,并且我需要在main方法中将彩票号码放在数组中,以便将它们与用户输入进行比较。或者至少这是我无法解决的问题

这就是我现在所拥有的。抱歉,这真是一团糟,我一直在尝试不同的方法,希望能弄清楚

import java.util.Random;
import java.util.Scanner;

public class Assignment04 {
public static void main (String [] args){

    Scanner input = new Scanner (System.in);

    Random r = new Random ();

    int [] user= new int [4];
    //int [] rand= new int [4];

    int rand1= r.nextInt(10);
    int rand2= r.nextInt(10);
    int rand3 = lotteryNumber(rand1,rand2);

    /*for (int i=0; i<rand.length; i++){
        rand [i] = r.nextInt(11);
    }

    for (int j=0; j<rand.length; j++){
        System.out.print(rand[j]+",");
    }*/

    System.out.println("");
    System.out.print("Enter number 1 between (1-10)= ");
    user[0] = input.nextInt();
    System.out.print("Enter number 2 between (1-10)= ");
    user[1] = input.nextInt();
    System.out.print("Enter number 3 between (1-10)= ");
    user[2]= input.nextInt();
    System.out.print("Enter number 4 between (1-10)= ");
    user[3] = input.nextInt();



    System.out.printf("Your numbers- %d, %d, %d, %d \n",user[0],user[1],user[2],user[3]);

    if (checkNumber(user,rand)){
        System.out.println("Winner!");
    }

    else System.out.println("Better luck next time!");

}


public static int lotteryNumber(int max, int min){

    Random r = new Random ();
    max = 0;
    min= 100;
    int n= 1+r.nextInt(10) ;

    for (int i=0; i< 4;i++){

        n = 1+r.nextInt(10);
        if (n > max) max= n;
        else if (n < min) min = n ;
        else if (n<max && n>min) n = r.nextInt(10);

    }

    return n;
}

public static boolean checkNumber(int [] lottery, int[] input){

    boolean a ;
    int b=0;

    for (int i=0; i<lottery.length; i++){
        if (lottery[i]==input[i]) b++;
    }

    if (b==lottery.length) a = true;
    else a = false;

    return a;
}


}

任何帮助将非常感激!

最佳答案

由于这是一项家庭作业,因此我将避免为您提供代码,但是我会为您提供帮助,并且您可以在Java中实现它。

您只需在main方法中创建一个数组,然后使lotteryNumber()方法返回单个数字。然后用从lotteryNumber()方法获得的随机数填充main方法中的数组。

像这样:

Main(){
    array[] numbers;
    loop 4 times{
        numbers[index] = lotteryNumber(0, 10);
    }
}
public int lotteryNumber(int min, int max){
    return (random number between min and max);
}


编辑

既然您在评论中提到您还没有遍历循环,那么您仍然可以手动输入随机数:

numbers[0] = lotteryNumber(0, 10);
numbers[1] = lotteryNumber(0, 10);
numbers[2] = lotteryNumber(0, 10);
numbers[3] = lotteryNumber(0, 10);

07-24 22:36