Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/304.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用递归计算整数数组中的偶数_Java_Arrays - Fatal编程技术网

Java 使用递归计算整数数组中的偶数

Java 使用递归计算整数数组中的偶数,java,arrays,Java,Arrays,我想找出整数数组中偶数的个数。 到目前为止,我写了这段代码 public static int EvenNum(int[] arr) { int index = 0; if (arr[index] % 2 == 1) { return 0; } else if (arr[index] % 2 == 0) { return 1; } index++; return index + EvenNum(arr); } 请帮

我想找出整数数组中偶数的个数。 到目前为止,我写了这段代码

public static int EvenNum(int[] arr) {
    int index = 0;
    if (arr[index] % 2 == 1) {
        return 0;
    } else if (arr[index] % 2 == 0) {
        return 1;
    }
    index++;
    return index + EvenNum(arr);
}

请帮助我运行此代码

使用your EvenNum()方法中的循环:

int evenNoCount=0;

对于(int i=0;i,可以使用索引参数来知道要检查的数组中的位置

public static int EvenNum(int[] arr, int index)
{
    if (index == arr.length) return 0;  // Stop recursion
    //return (arr[index] % 2 == 0 ? 1 : 0) + EvenNum(arr, index + 1);
    // or....
    int result;
    if ((arr[index] % 2) == 0) {    // Is even
        result = 1;
    }
    else {                          // Is odd
        result = 0;
    }
    return result + EvenNum(arr, index + 1);
}

public static void main(final String... args)
{
    // Start with index = 0
    System.out.println(EvenNum(new int[]{1,2,3,4,5}, 0));
} 

帮助我运行意味着什么?给你一个编译器?你到底不明白什么?你用过调试器吗?
请帮我运行这段代码
试试这个:)
publicstaticvoidmain(String[]args){System.out.println(EvenNum(newint[]{1,2,3,4,5});}
你为什么需要递归?每次运行代码我都会得到“”(只有空格)@PshemoQuestion要求递归。如果你认为它更好,请给出一个理由,说明为什么至少要简化这个(arr[index]%2==0?1:0),因为我不懂编码,我不知道你所说的?1:0@Johnny是什么意思Mopp@user3469667更新了我的答案。阅读了解三元运算符的信息。你能解释或简化arr[索引]%2==0?1:0……….因为我不懂编码,我不懂什么?1:0的意思是@Johnny moppoh谢谢
public static int EvenNum(int[] arr, int index)
{
    if (index == arr.length) return 0;  // Stop recursion
    //return (arr[index] % 2 == 0 ? 1 : 0) + EvenNum(arr, index + 1);
    // or....
    int result;
    if ((arr[index] % 2) == 0) {    // Is even
        result = 1;
    }
    else {                          // Is odd
        result = 0;
    }
    return result + EvenNum(arr, index + 1);
}

public static void main(final String... args)
{
    // Start with index = 0
    System.out.println(EvenNum(new int[]{1,2,3,4,5}, 0));
}