我在方法之間傳遞數組時遇到問題,並在下面摘錄了我的代碼。如何在方法之間正確傳遞數組
我已經成功創建了兩個數組,computerDice
和humanDice
,現在我需要計算每個數組中的數目,二進制數,三進制數等。請參閱代碼下面的示例。我已經驗證了a)輸入數組包含有效數據和b)。計數器正常工作。
但是,現在我試圖返回occurences
作爲一個數組 - 六個不同的值occurence
表示數組中的兩個,三個,等等被髮送到該方法 - 並且不成功。我一直有我的occurence
返回...不兼容的類型,操作數輸入錯誤的操作數的問題+ ...和我嘗試的每件事情有所不同。我明顯錯過了如何投射/填充這個變量。
注:這是作業;我只是想抓住我的概念錯誤步驟。
// 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
我print語句產生:
1 0 3
(的人,電腦已經0的,人有3級的)
2 1 0
(兩個,電腦有1兩個,人有0兩個)
3 2 1
等
4 1 0
我對這個數據集所需的陣列是:
5 1 0
pipCountsComputer{0,1,2,1,1,1}
6 0 1
pipCountsHuman{3,0,1,0,0,1}
'++'是原始類型的一元運算符。數組不是原始類型。 – Jeffrey 2012-03-19 02:38:39
你試圖做的事情沒有意義。您正在計算髮生的次數,當然這是一個單一的數字,並且您希望將其作爲一個數組返回。數組包含什麼? – Guffa 2012-03-19 02:41:21
你發佈的代碼不會編譯。你正在返回'occurrence',但你的返回類型是'void'。 – kentcdodds 2012-03-19 02:44:09