2013-04-06 104 views
-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; 
     } 





    } 
} 
+0

_i試過給人一種連續的loop_顯示的代碼你已經試過 – 2013-04-06 08:10:06

+0

我不明白..如果你輸入8,會發生什麼? – 2013-04-06 08:14:28

+0

它沒有任何意義,我無法找到這個孩子和父母陣列背後的邏輯...請給一些更多的例子,並張貼你做的代碼 – fmodos 2013-04-06 08:16:29

回答

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; 
      } 
     } 
    } 
+0

現在更好了謝謝 – user1673787 2013-04-06 14:03:48