如何使它正常运行?

时间:2019-03-01 13:42:37

标签: java arrays

我正在尝试为我的课程完成这段代码,但是我无法使这部分起作用。

我需要将三个输入数字与三个随机数字进行比较,在运行代码时,将输入放入后,即使某些数字匹配,唯一打印出来的就是else语句。< / p>

for(int x=0; x<=array.length - 1; x++) {
    if(array[0] == Rand[0] && array[1] == Rand[1] && array[2] == Rand[2]) {
        System.out.println("Your guesses are: " + array[0] + " " + array[1] + " " + array[2]);
        System.out.println("Lucky numbers are: " + Rand1 + " " + Rand2 + " " + Rand3);
        System.out.println("You won $1000!");
        break;
    } else if(array[x] == Rand[0] && array[x] == Rand[1] && array[x] == Rand[2]) {
        System.out.println("Your guesses are: " + array[0] + " " + array[1] + " " + array[2]);
        System.out.println("Lucky numbers are: " + Rand1 + " " + Rand2 + " " + Rand3);
        System.out.println("You won $100");
        break;
    } else if(array[x] == Rand[0] && array[x] == Rand[1] ||
        array[x] == Rand[1] && array[x] == Rand[2] ||
        array[x] == Rand[0] && array[x] == Rand[2]) {
        System.out.println("Your guesses are: " + array[0] + " " + array[1] + " " + array[2]);
        System.out.println("Lucky numbers are: " + Rand1 + " " + Rand2 + " " + Rand3);
        System.out.println("You won $30!");
        break;
    } else if(array[x] == Rand[0] || array[x] == Rand[1] || array[x] == Rand[2]) {
        System.out.println("Your guesses are: " + array[0] + " " + array[1] + " " + array[2]);
        System.out.println("Lucky numbers are: " + Rand1 + " " + Rand2 + " " + Rand3);
        System.out.println("You won $5");
    } else {
        System.out.println("Your guesses are: " + array[0] + " " + array[1] + " " + array[2]);
        System.out.println("Lucky numbers are: " + Rand1 + " " + Rand2 + " " + Rand3);
        System.out.println("You won nothing");
        break;
    }
}

2 个答案:

答案 0 :(得分:1)

  

如果您获得1个比赛($ 5)2个比赛(30)3个乱序($ 100)和3个乱序($ 1000)

因此,假设arrayrand的长度相同,并且rand中的所有数字都不相同(所以没有1, 1, 5左右)。

然后您将检查以下内容:

  1. 对于每个索引,请检查该索引处arrayrand中的元素。如果您都符合条件,则用户会依次猜出3。
  2. 如果不是全部都匹配,则将array中的每个元素与rand中的每个元素进行比较,然后计算匹配数。然后,该数字会告诉您用户是否赢得了0、5、30或100美元。

请注意,我故意不发布任何代码,因为该代码是“针对您的班级”的,因此您的任务是实际编写代码并从中学到一些东西。

修改

在您的评论中,您声明3个随机数可能都相同。这将需要您做一些不同的事情。一种方法可能是拥有rand的临时副本,当找到匹配项时,就从该副本中“删除”元素(例如,如果randint[]数组,则可以设置与-1匹配的元素,并将array的元素与rand的元素进行比较时,您会忽略任何值为-1)的元素。

使用列表可能会更容易(例如,您实际上删除了所有匹配项),但我认为您尚未了解这些匹配项。

答案 1 :(得分:0)

尝试这种计算两个ArrayList中匹配的数字的方法 (工作尚不完整,您可以完成):

public static void main(String[] args) {
    Scanner input=new Scanner(System.in);

    Random rn = new Random();
    int max=1000;
    int min=10;

    ArrayList<Integer>random=new ArrayList<>();
    for (int i=0;i<3;i++){
        random.add(rn.nextInt(max - min + 1) + min);
        System.out.println(random.get(i));
    }

    ArrayList<Integer>array=new ArrayList<>();
    for (int i=0;i<3;i++){
        array.add(input.nextInt());
    }

    int count=0;
    for (int i=0; i<3; i++){
        for (int j=0; j<3; j++){
            if (random.get(i).equals(array.get(j)))
                count++;
        }
    }

    System.out.println(count);

}

在这种方法中,我在array中接受3个输入,并在random中产生10至1000之间的3个随机数(当然,您可以通过更改min和{ {1}}) 在检查了匹配的条目数并在max中进行计数后,您可以在count结构中使用该计数来提供奖品。例如if-else或其他。您可以添加检查,以便随机数是唯一的,并且计数值是准确的。