2013-10-06 21 views
0

我想知道为什么for循环通过参数计数三次并且在第一次循环之后不停止?这是我的代码:for循环为什么要经过三次参数?

public class test2 { 
public static void main(String[] args) { 
    int N = args.length; 
    int[] x = new int[N]; 
    int count = 0; 
    for (int i = 0; i < x.length; i++) { 
     x[i] = Integer.parseInt(args[i]); 
    } 
    for (int i = 0; i < N; i++) { 
     for (int j = i+1; j < N; j++) { 
      if (x[j] != x[j-1]) { 
       count++; 
      } 
      System.out.println(count); 
     } 
    } 
    System.out.println(N-count); 
} 

}

+0

为什么你认为之后应该停止第一个循环? –

+0

因为你有3个for循环? –

+0

我的意思是在它将所有数字N,N假设为正整数f.x. {1,1,1,3,4,5,5,6}中的整数后停止。这是假设打印出2,因为有两个数字出现不止一次是{1,5} –

回答

0

我想你的意思要做到这一点:

for (int j = 1; j < N; j++) { 
     if (x[j] != x[j-1]) { 
      count++; 
     } 
     System.out.println(count); 
    } 
    System.out.println(N-count); 

代替:

for (int i = 0; i < N; i++) { 
    for (int j = i+1; j < N; j++) { 
     if (x[j] != x[j-1]) { 
      count++; 
     } 
     System.out.println(count); 
    } 
} 
System.out.println(N-count); 
+0

它的工作,但还有其他事情我需要改变,所以它可以正确计数,这是我的错,我必须改变代码,但谢谢:) –