2015-11-01 98 views
-4

它返回3個A,但我不明白這是爲什麼?這是什麼打印3 A的?

這是我的代碼: 一定int[] array = {3, 3, 2, 1, 3, 2, 1, 3, 3};

public static void returns(int[]array){ 
    for (int i = 0; i < array.length; i+= 2) { 
     if (array[i] == 3) { 
      System.out.print("A"); 
     } 
    } 
} 
+5

東西,你大概忽略了什麼:'我+ = 2' – Tunaki

+0

@Tunaki這是否意味着該陣列由兩個會增加嗎?所以1 + 2 = 3沒有? –

+4

迭代僅查看元素0(3),2(2),4(3),6(1)和8(3)。其中只有3個是'3',所以'A'打印3次。 – Thevenin

回答

1

由於具有零爲i(和i+= 2)你只測試偶數索引的初始值,以及這些僅0 4,8是3.你可以使用類似

System.out.printf("%d A ", i); 

而不是System.out.print("A");自己看看。

我得到

0 A 4 A 8 A 

如果你想算3(S),我寧願一個for-each loop。另外,傳入所需的值。像

public static int count(int[] array, int value) { 
    int count = 0; 
    for (int i : array) { 
     if (i == value) { 
      count++; 
     } 
    } 
    return count; 
}