2016-07-07 115 views
-2

這裏是從數組中的元素列表中打印不同元素的代碼(我從一個網站得到這個)。如何在java中打印不同的數組元素?

package pattern; 
    import java.util.*; 

    class Pattern{ 
    public static void main(String[] args){ 

    int[] num=new int[6]; 

    //method to enter elements inside 'num' array 
    System.out.println("Enter the numbers: "); 
    getEle(num); 

    //method to print distinct elements from array 
    System.out.println("Printing distinct elements:"); 
    printDis(num);  
    } 

    public static void getEle(int[] num){ 

    Scanner in=new Scanner(System.in); 
    for(int i=0;i<num.length;i++) 
    { 
     num[i]=in.nextInt(); 
    }   
    } 

    public static void printDis(int[] num){  
    for (int i=0; i<num.length; i++){ 

     int j; 
    for (j=0; j<=i; j++) 
    { 
     if (num[i] == num[j]) 
      break; 
    } 

    if (i == j) 
     System.out.print(num[i]+" "); 
    } 
    }   
    } 

基本上我沒有收到 'printDis' 功能,即

public static void printDis(int[] num){ 

    for (int i=0; i<num.length; i++){ 

     int j; 
    for (j=0; j<=i; j++) 
    { 
     if (num[i] == num[j]) 
      break; 
    } 

    if (i == j) 
     System.out.print(num[i]+" "); 
    } 
    } 

有人可以解釋我的環路以及這

  if (num[i] == num[j]) 
      break; 

和,

 if (i == j) 
     System.out.print(num[i]+" "); 

這段代碼。

+3

如果你不明白你問的第二部分,你可能想從一個'Hello World'教程開始。 – SomeJavaGuy

+0

這是你的代碼。你怎麼知道它的作用? if(num [i] == num [j]) break; - >如果這兩個整數具有相同的值,請打開循環。如果(i == j) System.out.print(num [i] +「」); - >如果這兩個整數具有相同的值,打印索引我的元素 – Stultuske

+0

@KevinEsche我不是在尋找諷刺雖然 –

回答

0

這行代碼:

if (num[i] == num[j]) 
break; 

跳出for (j=0; j<=i; j++)循環的當在一個陣列發現了兩個相同的元件。

而這其中:

if (i == j) 
    System.out.print(num[i]+" "); 

正在打印的陣列的匹配元素。

基本上整個代碼遍歷num[]中的另一個迭代num[]。當找到兩個相同的元素時,它將打印在該陣列中出現兩次的元素。