-3

我有两个像这样命名为父子的数组

Child [] = {1,5,6,7}

Parent [] = {2,1,5,8}

当我输入父元素时,它应该给子元素。以同样的方式它应该给孩子的孩子元素。

例如:

  1. 如果我给出 2 作为输入。那么输出将是 1,5,6

  2. 如果我给出 1 作为输入。那么输出将是 5,6

  3. 如果我给出 5 作为输入。那么输出将是 6

  4. 如果我给出 8 作为输入。那么输出将是 7

我试过它给出一个连续循环。

//final code
package parentchild;

import java.util.Scanner;

public class ParentChild {
    static int [] child = {1,5,6,7};
    static int [] parent = {2,1,5,8};

    public static void main(String[] args)
    {
        System.out.println("enter:");
        Scanner sc = new Scanner(System.in);
        int x = sc.nextInt();

        int len = parent.length-1;

        while(x!= parent[len])
        {
          for(int i=0;i<=3;i++)
          {
              if(x==parent[i])
              {
                 System.out.println(child[i]);
              }

              x = child[i];
          }   
          return;
    }

       while(x== parent[len])
       {
           System.out.println(child[len]);
           return;
       }





    }
}
4

1 回答 1

0

你的算法似乎有效,但它有点复杂并且有更多的迭代,因为你在这里解决了它是一个改进的代码:

public static void main(String[] args) {
        System.out.println("enter:");
        Scanner sc = new Scanner(System.in);
        int x = sc.nextInt();

        while (true) {
            boolean found = false;
            for (int i = 0; i <= 3; i++) {
                if (x == parent[i]) {
                                    x = child[i];
                    System.out.println(child[i]);
                                    //indicate that found  a parent 
                    found = true;
                    break;
                }
            }
            // stop the program, if no parent was found
            if (!found) {
                return;
            }
        }
    }
于 2013-04-06T08:52:56.120 回答