메뉴 바로가기 검색 및 카테고리 바로가기 본문 바로가기

한빛출판네트워크

IT/모바일

자바 200제 : 요소 개수가 5개인 int형 배열에 순서대로 5, 4, 3, 2, 1을 대입하는 프로그램을 작성하자.

한빛미디어

|

2019-06-05

|

by 한빛

10,793

문제 : 요소 개수가 5개인 int형 배열에 순서대로 5, 4, 3, 2, 1을 대입하는 프로그램을 작성하자.

1.jpg

 

요소 수 가져오기 

 

IntArrayFor 프로그램에서 사용하는 int형 배열은 각 요소에 값을 대입한 후 각 요소를 표시한다. 요소에 값을 대입하는 것이 첫 번째 for문이고 요솟값을 표시하는 것이 두 번째 for문이다. 제어식 부분(a.length)은 다음과 같은 식을 사용한다.

 

배열변수명.length

 

위 식은 배열의 요소 수를 가져오는 식이다. 요소 수는 길이(length)라고도 한다. 여기서는 a.length를 평가한 값이 5이다. 배열 변수가 배열을 참조한다는 것을 이미 앞에서 배웠다. 이것을 좀 더 상세하게 나타낸 것이 [그림1]이다. ‘배열과 요소 수(길이)인 length를 한 쌍으로 하는 것’을 배열 변수가 참조한다. 

 

[그림1] 배열 변수, 배열, 요소 수

6-3.jpg

 

이 그림이 보여주는 것은 논리적인 과정이다. 컴파일한 결과인 클래스 파일의 내부가 이 그림처럼 구성되는 것은 아니다. 배열의 요소 수를 나타내는 length는 int형이 아닌 final int형이다. 따라서 length에 값을 대입할 수 없다. 첫 번째 for문에 주목하자. 변수 i를 0부터 증가시키며 5회 반복한다. for문의 흐름을 전개하면 다음과 같다.

  • i가 0일 때 a[0] = 5 – 0;  // a[0]에 5 대입 
  • i가 0일 때 a[1] = 5 – 1;  // a[1]에 4 대입
  • i가 0일 때 a[0] = 5 – 2;  // a[2]에 3 대입 
  • i가 0일 때 a[0] = 5 – 3;  // a[3]에 2 대입 
  • i가 0일 때 a[0] = 5 – 4;  // a[4]에 1 대입

배열의 전체 요소인 5에서 인덱스를 뺀 값을 대입하는 것을 알 수 있다. 

 

20190530113010_hyzbgqli.jpg

댓글 입력
자료실