所以我正在做很多练习,其中一个要求我编写一个方法,该方法将每个插槽类型为int的数组传递给它。此方法应返回数组中出现99的次数。这是我即时想到的:
public static int countNum(int[]x)
{
int count = 0;
for (int i = 0; i <= x.length;i++);
{
if (x[i] == 99)
count++;
}
return count;
}
总而言之,我只需要编写方法。我在正确的轨道上吗?
答案 0 :(得分:1)
嗯,有两个错误。
首先:应该是i < x.length;
或那样的i <= x.length - 1;
,否则您将无法使用数组。
第二:
for (int i = 0; i <= x.length;i++)**;**
{
if (x[i] == 99)
count++;
}
您不需要; ,否则下一个代码将不在中。
答案 1 :(得分:0)
array.length返回数组的长度,并且您不想从0迭代到length
,而是从0迭代到length - 1
。
为什么?例如,如果数组为[1,5],则:
array.length == 2
,array[0] == 1
,array[1] == 5
,但是array[2]
抛出java.lang.ArrayIndexOutOfBoundsException
(因为它试图到达不在数组中的元素)
在for语句后删除分号:
for (int i = 0; i <= x.length;i++);
(for循环执行紧随其后的语句,“;”结束一条语句。for(...)后跟“;”表示您有一个循环,该循环不执行x.length次)) / p>