【问题标题】:Print out the length of an array in JAVA在JAVA中打印出数组的长度
【发布时间】:2022-01-18 00:26:05
【问题描述】:

我需要编写一个彩票模拟器,基本上一切正常,但我在问题结束时遇到了一个小问题。有 2 个数组(我需要在没有数组列表的情况下工作)进行比较。生成的中奖号码和用户输入的号码。我成功地展示了哪些数字是正确的猜测。但不起作用的是显示多少猜测是正确的。我试过 System.out.println("你猜对了这么多数字:"+intArray.length[i] 但这不起作用。有没有办法显示正确猜到的数字的确切数字?谢谢提前任何帮助

  for (int i=0; i< intArray.length;i++){

        for (int j=0; j< ownArray.length;j++){

            if (intArray[i] == ownArray[j]){




                System.out.println("Your following guess was correct: "+intArray[i]);

【问题讨论】:

  • 你认为intArray.length[i] 会产生什么?
  • 有什么方法可以显示猜对了多少?当然。数一数,打印出来。

标签: java arrays for-loop element variable-length-array


【解决方案1】:

如果您的彩票号码是正数,这实际上很简单。如果数字可以是负数,则涉及更多。基本算法是反复将彩票号码与所有玩家的猜测一一比较。如果匹配,我们在用户猜测数组中记录 -1 并增加一个计数器来跟踪正确条目的数量。

一些代码会让这更清楚:

public class LotteryNumbers {


    public static void main(String[] args) {
        int[] lotteryNumbers = {1,2,3,4,5,6};
        int[] userGuess = {1,2,3,4,8,9};
        int correct = 0;

        for(int i=0; i<lotteryNumbers.length; i++) {
            for(int j=0; j<userGuess.length; j++) {
                if( userGuess[j] == lotteryNumbers[i]) {
                    userGuess[j] = -1; // 'eliminate' this guess for checking
                    correct++;
                    break;
                }
            }
        }

        System.out.println("Number of correct numbers = " + correct);
    }
}

输出:

Number of correct numbers = 4

之所以有效,是因为该算法会剔除玩家猜测中的匹配项,并防止下次通过循环进行匹配。您可以想象,我们实际上正在做的是将玩家猜测中的数字与彩票号码相匹配。

【讨论】:

    【解决方案2】:

    只需使用计数变量

    public static void main(String[] args) {
        int[] intArray = {1,2,4,5};
        int[] ownArray = {1,0,2,7};
        int count = 0;
        System.out.println("Your following guesses were correct: ");
        for (int i = 0; i < intArray.length; i++){
            for (int j = 0; j < ownArray.length; j++){
                if (intArray[i] == ownArray[j]){
                    System.out.print(intArray[i] + " ");
                    count++;
                }
            }
        }
        System.out.println("\nNo. of correct guesses: " + count);
    }
    

    输出: 您的以下猜测是正确的: 1 2 正确猜测数:2

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-12-13
      • 2019-07-13
      • 1970-01-01
      • 2020-01-13
      • 2021-11-25
      • 1970-01-01
      • 2020-10-31
      • 2017-09-24
      相关资源
      最近更新 更多