【发布时间】:2012-03-19 02:36:05
【问题描述】:
我在方法之间传递数组时遇到问题,我在下面摘录了我的代码。
我已经成功创建了两个数组,computerDice 和humanDice,现在我需要计算每个数组中的个数、二、三等。请参见代码下方的示例。我已经验证了 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 = 52334 和 humanArray = 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