我必须在JAVA
中创建一个方法,用户在其中定义一个数字,并在数组中搜索该数字存在的时间,如下所示:
int[] age = {21, 23, 21, 29, 18};
如果用户输入:21
输出应为:
21次存在2次
我制作了这段代码:
public static int numAgeReader(int[] ageToSearch)
{
Scanner scan = new Scanner(System.in);
int n = 0;
int counter=0;
System.out.println("Please enter an age:");
n = scan.nextInt();
//Searching the ages Array to see how many persons have this age
for(int i=0; i<ageToSearch.length; i++)
{
if(n==ageToSearch[i])
counter += counter; //counter = counter + 1
}
return counter;
}
当然我在主函数中调用了它:
System.out.println(numAgeReader(ages));
年龄是我之前填充的数组。
结果始终为:0
修改
此方法应返回数组的平均值:
public static double average(int[] ageArray)
{
//double aver=0.0;
int sum = 0;
//Calculating the sum of the age array
for (int i=0; i<ageArray.length; i++)
{
sum = sum + ageArray[i];
}
//Calculating the average:
return(sum/ageArray.length);
//return aver;
}
结果有时应该是25.33或18.91,但返回值总是如下:25.0或19.0或89.0
答案 0 :(得分:4)
更改
counter += counter;
到
counter++;
由于counter
在开头设置为 0 ,counter += counter;
对counter
变量没有影响,因此您将始终获得 0 作为返回值。
答案 1 :(得分:3)
你在这里弄错了:
counter += counter;
你可能意味着:
counter++;
答案 2 :(得分:2)
当您撰写counter += counter
时,实际上每次都会为自己添加0。
你需要写
counter++
或counter += 1
答案 3 :(得分:1)
尝试使用它:
counter++;
而不是counter += counter;