返回一个在for循环中已经为st的整数

时间:2016-01-29 14:36:51

标签: java

我必须在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

4 个答案:

答案 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;