Java 编写一个程序,搜索数组以找到第一个奇数

Java 编写一个程序,搜索数组以找到第一个奇数,java,arrays,Java,Arrays,我无法完成这个问题。 编写一个程序,搜索数组以找到第一个奇数。如果是奇数 找到数字,然后找到奇数后的第一个偶数。返回第一个奇数和第一个偶数之间的距离。如果未找到奇数或奇数后没有偶数,则返回-1。 我尝试了这些问题,但无法解决这是我的代码: public class RayOddtoEven { public static int go(int[] ray) { int result = 0; boolean oddExists = false; int oddIn

我无法完成这个问题。 编写一个程序,搜索数组以找到第一个奇数。如果是奇数 找到数字,然后找到奇数后的第一个偶数。返回第一个奇数和第一个偶数之间的距离。如果未找到奇数或奇数后没有偶数,则返回-1。 我尝试了这些问题,但无法解决这是我的代码:

public class RayOddtoEven
{
  public static int go(int[] ray)
  {
    int result = 0;
    boolean oddExists = false;
    int oddIndex = 0;
    for (int i = 0; i < array.length; i++)
    {
      if (array[i] % 2 != 0)
      {
        oddExists = true;
        oddIndex = array[i];
        break;
      } 
    }
  }
}
请帮我完成这段代码,我给出这段代码与这个运行程序的输出。 我需要这些答案。 我需要的正确输出

6
2
3
1
-1
4
5
4
-1

我将嵌套一个循环,首先迭代以找到第一个奇数值;然后从那里向前迭代以获得偶数值。一旦从第一个奇数开始迭代,就可以终止外部循环。差不多

public static int go(int[] ray) {
    for (int i = 0; i < ray.length; i++) {
        if (ray[i] % 2 != 0) {
            for (int j = i + 1; j < ray.length; j++) {
                if (ray[j] % 2 == 0) {
                    return j - i;
                }
            }
            break;
        }
    }
    return -1;
}

你的方法不会返回任何东西。是的,我知道,但我不明白。这就是我不回来的原因
public static int go(int[] ray) {
    for (int i = 0; i < ray.length; i++) {
        if (ray[i] % 2 != 0) {
            for (int j = i + 1; j < ray.length; j++) {
                if (ray[j] % 2 == 0) {
                    return j - i;
                }
            }
            break;
        }
    }
    return -1;
}
6
2
3
1
-1
4
5
4
-1