- 배열과 반복문
배열은 반복문과 함께 사용하는 경우가 많습니다. 많은 양의 데이터를 처리하고자 만든 자료형이기 때문에 각각의 데이터를 제어할 시 반복문을 통해 중복되는 작업을 빠르게 진행할 수 있습니다.
아래 예제를 통해 for 문과 배열을 조합하여 사용하는 법을 알아봅시다.
import java.io.*;
class Main {
public static void main(String[] args) {
int iArraySize = 20;
int [] Array = new int[iArraySize];
for(int j = 0 ; j < iArraySize ; j++) {
Array[j] = j;
}
for(int j = 0 ; j < iArraySize ; j++) {
System.out.println(Array[j]);
}
}
}
위 예제는 for 문과 배열의 종합적인 사용법을 나타낸 예제입니다.
- 5번째 줄에서 iArraySize 라는 변수를 선언하고 20 이라고 초기화 합니다.
- 7번째 줄에서 iArraySize 변수에 저장된 데이터 크기(20) 만큼 배열 크기를 결정합니다.
- 9번째 줄의 for 문을 통해 Array 배열에 데이터를 저장합니다. for 문은 총 20회를 반복합니다.
- 13번째 줄의 for 문을 통해 Array 배열에 저장된 데이터를 모두 출력합니다.
배열은 수많은 데이터를 다루어야 하는 프로그래밍에서 매우 빈도 높게 사용하는 기법으로, 위 예제처럼 for 문 혹은 while 문과 같은 반복문과 함께 사용됩니다. n칸의 배열을 선언한다면, 0부터 n-1까지의 공간을 사용할 수 있다는 점을 꼭 유의하시기 바랍니다.
- 2차원 배열
선으로 이루어진 차원은 1차원, 면으로 이루어진 차원은 2차원, 공간으로 이루어진 차원은 3차원이라고 합니다.
배열은 특정 데이터 타입이 선 형태로 연속되도록 정의하였기에 1차원 배열이며 이는 가장 기본적인 배열입니다.
2차원은 면으로 구성되어 있습니다. 면은 여러 개의 선으로 구성됩니다. 즉, 2차원 배열 또한 여러 개의 1차원 배열로 구성될 수 있습니다.
import java.io.*;
class Main {
public static void main(String[] args) {
int [][] arr = new int[10][10];
for(int j = 0 ; j < 10 ; j++) {
for(int k = 0 ; k < 10 ; k++) {
arr[j][k] = j * k;
}
}
for(int j = 0 ; j < 10 ; j++) {
for(int k = 0 ; k < 10 ; k++) {
System.out.print(arr[j][k] + "\t");
} System.out.println();
}
}
}
위 예제는 2차원 배열의 가장 기본적인 소스 코드이며, 크게 세 부분으로 나누어 볼 수 있습니다.
- 6번째 줄에서 2차원 배열이 선언 및 정의 됩니다. 1차원 배열에서는 "[]"가 하나 뿐이었지만, 2차원 배열에서는 "[]"를 연속하여 두 번 사용하여 해당 배열 변수가 2차원 배열임을 명시 합니다.
- 7번째 줄에서 11번째 줄까지 반복문을 통해 2차원 배열에 데이터를 입력합니다. 2차원 배열이기 때문에 2중 for 문을 사용해야 모든 배열 칸에 데이터를 입력할 수 있습니다. 고등학교 수학 시간에 배운 행렬을 기억하시나요? 가로를 행, 세로를 열이라고 하며 왼쪽 위부터 오른쪽 아래까지 순차적으로 숫자가 입력되어 있는 집합을 행렬이라고 합니다. 2차원 배열은 가장 왼쪽 위 순서 번호가 (0,0)인 행렬이라고 생각하시면 됩니다.
- 13번째 줄에서 17번째 줄까지 반복문을 통해 2차원 배열의 데이터를 출력합니다. 2중 for 문을 사용한다는 것 이외에 1차원 배열과 크게 다른 부분은 없습니다.
위 예제에서 사용한 배열이 메모리에 어떻게 할당됐는지 살펴보면 아래 그림과 같습니다.
메모리 구조를 살펴보면 1차원 배열에서는 기본 자료형이 입력되어 있던 공간에 배열이 들어있는 것을 알 수 있습니다. 즉, 2차원 배열이란, "배열의 배열" 이 되는 것입니다.
'비전공자의 개발과 친해지기 > 배열' 카테고리의 다른 글
[JAVA : 배열]1. 배열 (0) | 2022.04.10 |
---|