2014-04-07 3 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

당신은 [] 0 모든 요소가 0

에 NUM의 모든 요소를 ​​초기화하는 int의 배열을 정의 할 때.

시도해보십시오.

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까지의 모든 인덱스에 대해 숫자 0이 포함됩니다 (20 개 요소). 당신은 배열을 자동으로 채운이 방법을 사용할 수 있습니다 : 물론

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입니다.