Java 입문:제7회 배열과 확장 for문

이번에는 배열과 for 문에 대해 살펴 보겠습니다. 입문서에서는 잘 배열은 상자(변수)의 모임이라고 설명합니다. 다음과 같은 이미지입니다.



이 상자 안에 정수라면, 예를 들면 다음과 같이 값이 들어가게 됩니다. 이러한 것을 배열이라고합니다. 또한 각 값을 요소라고합니다.



배열은 변수와 같이 이름을 붙여 취급할 수 있습니다.



예를 들어, 이 myArr이라는 배열의 "8"이 대입되어 있는 곳은 2개소가 있습니다. 처음 8을 출력하려면 "어디"라는 곳의 정보가 필요합니다. Java는 배열의 요소에 액세스하기 위해 번호를 사용합니다.



번호는 0부터 시작합니다. 이 번호를 첨자라고합니다. 첨자는 0부터 시작하여 요소 수 -1로 끝납니다. 이 경우 0-4의 다섯 가지 요소가 있습니다.

이제 이러한 이미지를 Java 코드로 표현해 봅시다.
배열을 정의하려면 []를 사용합니다. 변수처럼 형식 선언으로 시작합니다.
int myArr[];

이것만으로는 다음과 같이 배열을 선언했을 뿐이므로 다음과 같은 상태입니다.


그런 다음 배열의 요소 수가 몇 개 있는지 정의합니다.
myArr = new int[5];

여기서 [5]는 첨자의 의미가 아니라 요소의 수가 5개임을 나타냅니다. 그러면 다음과 같은 상태가 됩니다. 이것을 배열 초기화라고합니다.



배열의 선언과 초기화는 동시에 기술할 수 있습니다.
int myArr[] = new int[5];

작성한 배열에 값을 대입하려면, 첨자를 이용해 다음과 같이 기술합니다.
myArr[0] = 8;
myArr[1] = 4;
myArr[2] = 5;
myArr[3] = 8;
myArr[4] = 2;

좀 더 쉽게 선언과 함께 값을 할당할 수 있습니다.
int myArr[] = {8,4,5,8,2};

값을 검색하려면 다음과 같이 작성하십시오.
System.out.println("配列0番目の値=" + myArr[0]);

배열의 모든 값을 검색하려면 for 문을 사용하여 다음과 같이 작성할 수 있습니다.
for(int i=0; i<5; i++) {
    System.out.println("配列" + i + "番目の値" + myArr[i]);
}

이 때, 배열의 요소의 수를 i<5와 같이 기술합니다만, 요소의 수를 잘못해, 예를 들면 6이라고 기술하면(자), 다음과 같이 에러가 되어 버립니다.
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 5
at HelloWorld.main(HelloWorld.java:11)

이러한 런타임에 발생하는 오류를 Java에서는 예외라고합니다. 예외에 대한 자세한 내용은 별도로 말하기로 여기에서 다음을 확인합시다.
  • 예외명:ArrayIndexOutOfBoundsException
  • 발생한 파일 및 행 수: HelloWorld.java:11

  • 이러한 실수를 없애기 위해 배열은 요소의 수를 얻을 수 있습니다. 다음과 같이 "배열 이름 .length"라고 설명합니다.
    for(int i=0; i<myArr.length; i++) {
        System.out.println("配列" + i + "番目の値" + myArr[i]);
    }
    

    Java의 버전 5보다 배열 등의 값의 모음에 대해서, 모든 값을 주사하는 기능이 추가되었습니다. 이것을 확장 for 문으로 읽습니다. 확장 for 문을 사용하면 모든 값을 스캔 할 수 있습니다.
    for(int item : myArr) {
        System.out.println(item);
    }
    

    여기서 myArr이 주사 대상의 배열로, 각 배열의 요소가 item에 순차적으로 격납되어 출력하고 있습니다. item은 일반 for 문일 때 myArr [i]에 해당합니다. item은 변수 이름이므로 a이든 x이든 상관 없습니다.

    확장 for문을 이용하는 것으로, 보다 간단하게 배열의 내용을 취득할 수 있게 됩니다. 또 확장 for문은 배열 뿐만이 아니라, 다양한 값의 모음에 대해서 이용하는 것이 가능합니다.

    좋은 웹페이지 즐겨찾기