使用父子逻辑获取数组元素

时间:2013-04-06 08:09:06

标签: java

我有两个名为parent和child的数组,如此

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

  5. 我试着给它一个连续循环。

    //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;
           }
    
    
    
    
    
        }
    }
    

1 个答案:

答案 0 :(得分: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;
            }
        }
    }