2016-07-07 81 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[]。当找到两个相同的元素时,它将打印在该阵列中出现两次的元素。