2014-04-07 80 views
-1

我必須使用數組存儲偶數直到20,但是當我跑步時,只顯示數字0 我希望得到一些幫助。帶循環的數組練習

int num[] = new int[20]; 

for(int i = 0; i <=10; i++){ 
    System.out.println(i); 

    if(i%2 == 0){ 
     System.out.println("even number " +num[i]); 
    } 
} 
+0

'num [i]'是什麼?你爲什麼使用它? –

+0

@SotiriosDelimanolis:很明顯這是一個偶數。他只是沒有初始化他的int數組。 – Brian

回答

0

在java中在定義的INT的所有元素初始化爲0。

在NUM所有元素的數組[]是0。由於你沒有任何值分配給它們。

試試這個。

int num[] = new int[20]; 

for(int i = 0; i <=10; i++){ 
    num[i] = i; 
    System.out.println(i); 

    if(i%2 == 0){ 

    System.out.println("even number " +num[i]); 
} 

}

0

您需要在號碼分配給您的陣列,如:

int index = -1; 
if(i%2 == 0){ 
    num[++index] = i; 
    System.out.println("even number " +num[index]); 
} 
+1

這樣他就會在奇數索引處得到0 –

+0

是的,你說得對,但是我想提出這個想法,而且他正在打印當前索引,所以他不會注意到奇數索引,無論如何我都更新了答案。 – Salah

1

的問題是,你以爲你是要給予已自動與數字填充的數組1到20或0到20.您必須自己將這些數字添加到數組中。默認情況下,數組將包含從0到19(20個元素)的每個索引的數字0。您可以使用此方法來自動填充數組:

void List<Integer> makeSequence(int begin, int end) 
{ 
    List<Integer> ret = new ArrayList(end-begin+1); 

    for(int i = begin; i <= end; i++, ret.add(i)); 

    return ret; 
} 

... 

List<Integer> seq = makeSequence(0, 19); 
int num[] = new int[seq.size()]; 
seq.toArray(num); // fill the array 

當然,一旦你有,你可以只用在首位List一個List<Integer>

makeSequence禮貌這answer