2016-07-31 3 views
1

2000-3000 범위의 정수로 배열을 채우고 싶습니다. 특정 범위 내의 배열 채우기

public static void main(String[] args) { 

int[] nums = new int[1000]; 
for (int y = 0; y < nums.length; y++) { 

    for (int i = 2000; i < 3000; i++) { 
    nums[y] = i; 
    } 
} 
System.out.println(Arrays.toString(nums)); 
} 

나는 문제가 무엇 2999.

의 전체 배열을 가지고? 미리 감사드립니다.

+0

두 번째 루프가 필요하고 'i-2000'을 색인으로 사용할 수 있습니다. 예 :'nums [i-2000] = i;' – Titus

+0

해결책을 줄 수있는 게시물이 있습니다 : http : // stackoverflow.com/a/28490904/2625912 – Jason

+0

그것의 쉬운 당신의 num [y] 값은 항상 두 번째 루프의 마지막 값과 동일합니다. i = 2999, y = 3의 예. 두 번째 루프 블록의 exeuction은 다음과 같습니다. y [3] = 1, y [3] = 2, .... y [3] = 2999 –

답변

3

같은 셀을 반복해서 채우고 있습니다. 배열 크기는 1000이지만 범위는 1001입니다. 3000 - 2000 + 1 = 1001

public static void main(String[] args) { 

    int[] nums = new int[1001]; 
    for(int y=0;y<nums.length;y++) { 
     nums[y]= y + 2000; 
    } 

    System.out.println(Arrays.toString(nums)); 
} 
+0

감사! 그것은 좋은 해결책 중 하나입니다! – brobee

0

당신은 i<=3000로 변경하고 또한

int[] nums = new int[1001];  

DEMO에 배열의 길이를 증가, 루프가 i<3000을 종료하기 때문에 당신이 2999을 얻을

int[] nums = new int[1000];   

for(int i=2000; i<3000; i++) { 
     nums[i-2000]=i; 
}  

System.out.println(Arrays.toString(nums)); 

할 것을 할 중첩 루프를 필요 없어요

3

Java 8 솔루션은 어떤가요?

IntStream.range(2000, 3001).toArray(); // [2000, 2001, ... 3000] 
0

코드를 사람의 언어로 번역 할 수 있다면 도움이됩니다.

코드를 분해하면 두 개의 루프가 생깁니다. 하나는 :

int[] nums = new int[1000]; 
    for (int y = 0; y < nums.length; y++) { 
    // Stuff 
    } 
} 

아이디어의 첫 번째 루프는 배열의 전체 길이를 반복하는 것입니다. "배열의 각 인덱스에 대해 ..."

그런

, 당신은 배열 반복자 안에 다른 루프가 : 여기

for (int i = 2000; i < 3000; i++) { 
    nums[y] = i; 
} 

을, 당신은 숫자를 넣어 노력하고있다 2000 년부터 2999 년까지는 배열의 인덱스 y에 해당합니다.

"배열의 색인 y에서 값을 2000에서 2999로 지정하십시오.

이전 값은 사용자가 입력 한 값마다 덮어 씁니다.

"인덱스 Y 배열에 넣어 2,999."이것은 궁극적으로 끝난다

하나로 모으기 :

를 "각 인덱스 Y 배열에 넣어 2,999.코드를 작성하는 적절한 방법은 "


확인 TDG's answer.

0

@silentprogrammer 언급 한 loop.As 또 다른 방법은, 당신은 1

public static void main(String[] args) { 
     int var=2000; 
     int[] nums = new int[1001]; 
     for (int y = 0; y < nums.length; y++) { 
      nums[y]=var++; 
     } 
     System.out.println(Arrays.toString(nums)); 
    } 
에 의해 배열의 크기를 늘려야