【问题标题】:How do I properly pass an array between methods如何在方法之间正确传递数组
【发布时间】:2012-03-19 02:36:05
【问题描述】:

我在方法之间传递数组时遇到问题,我在下面摘录了我的代码。

我已经成功创建了两个数组,computerDicehumanDice,现在我需要计算每个数组中的个数、二、三等。请参见代码下方的示例。我已经验证了 a.) 输入数组包含有效数据和 b.) 计数器正常工作。

但是,现在我试图将occurences 作为数组返回——occurence 的六个不同值表示数组中的一个、二、三等,被发送到方法——但没有成功.我的occurence return 一直存在问题...不兼容的类型,为操作数 + 键入的操作数错误...而且我尝试的每件事都得到了不同的东西。我显然错过了如何转换/填充这个变量的东西。

注意:这是作业;我只是想抓住我在概念上的错误步骤。

// SEND VALUES TO numToFind AND CREATE SCORING ARRAY FOR computerDice AND humanDice
        for(int i=1;i<7;i++)
        {
            int[] pipCountsComputer = findVals(computerDice,i);
            int[] pipCountsHuman = findVals(humanDice,i);
            System.out.println(i + " " + pipCountsComputer + " " + pipCountsHuman);
        }
    }
//
// COUNT INSTANCES OF numToFind IN arr[] AND RETURN THE occurence
    public static int[] findVals(int[] arr, int numToFind)
    {
        int[] occurence=0;
        for (int i = 0; i < arr.length; i++)
        {
            if (arr[i] == numToFind)
                occurence = occurence+1;
        }
        return occurence;
    }

我已经验证了,例如,给定 computerArray = 52334humanArray = 11163 我的打印语句产生:

1 0 3(一,计算机有 0 个,人类有 3 个)
2 1 0(二,计算机有 1 个二,人类有 0 个二)
3 2 1
@ 987654334@我想要的这个数据集的数组是:
5 1 0pipCountsComputer{0,1,2,1,1,1}
6 0 1pipCountsHuman{3,0,1,0,0,1}

【问题讨论】:

  • ++ 是原始类型的一元运算符。数组不是原始类型。
  • 您尝试做的事情没有意义。您正在计算出现次数,这当然是一个数字,并且您希望将其作为数组返回。数组将包含什么?
  • 您发布的代码无法编译。您正在返回 occurrence,但您的返回类型是 void

标签: java arrays parameter-passing


【解决方案1】:

如果我理解正确,试试这个来计算出现次数:

public static int findVals(int[] arr, int numToFind) {
    int occurence = 0;
    for (int i = 0; i < arr.length; i++) {
        if (arr[i] == numToFind)
            occurence++;
    }
    return occurence;
}

我真的不明白你为什么要返回一个数组,一个出现只是一个数字。

【讨论】:

    【解决方案2】:

    因为这闻起来像家庭作业,所以我不会给你答案,而是提示一下......

    现在我正在尝试将出现作为数组返回

    你还没有为此编写代码……再看看方法签名

    public static void findVals(int[] arr, int numToFind)

    【讨论】:

    • 确实是功课。当这通过时,我正在添加作业标签和免责声明。 :) 如果您暗示需要将什么 void 更改为 int[],我已经这样做了。我还发布了我的“之后”代码...(我〜已经发布了我的“之前”代码)...
    猜你喜欢
    • 2020-06-18
    • 1970-01-01
    • 2019-04-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多