비전공자의 개발과 친해지기/배열

[JAVA : 배열]2. 배열과 반복문 / 2차원 배열

justdoIT0730 2022. 4. 10. 20:04
728x90
728x90

- 배열과 반복문

 배열은 반복문과 함께 사용하는 경우가 많습니다. 많은 양의 데이터를 처리하고자 만든 자료형이기 때문에 각각의 데이터를 제어할 시 반복문을 통해 중복되는 작업을 빠르게 진행할 수 있습니다.

 

 아래 예제를 통해 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 문과 배열의 종합적인 사용법을 나타낸 예제입니다. 

 

  1. 5번째 줄에서 iArraySize 라는 변수를 선언하고 20 이라고 초기화 합니다.
  2. 7번째 줄에서 iArraySize 변수에 저장된 데이터 크기(20) 만큼 배열 크기를 결정합니다.
  3. 9번째 줄의 for 문을 통해 Array 배열에 데이터를 저장합니다. for 문은 총 20회를 반복합니다.
  4. 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차원 배열의 가장 기본적인 소스 코드이며, 크게 세 부분으로 나누어 볼 수 있습니다.

  1. 6번째 줄에서 2차원 배열이 선언 및 정의 됩니다. 1차원 배열에서는 "[]"가 하나 뿐이었지만, 2차원 배열에서는 "[]"를 연속하여 두 번 사용하여 해당 배열 변수가 2차원 배열임을 명시 합니다.
  2. 7번째 줄에서 11번째 줄까지 반복문을 통해 2차원 배열에 데이터를 입력합니다. 2차원 배열이기 때문에 2중 for 문을 사용해야 모든 배열 칸에 데이터를 입력할 수 있습니다. 고등학교 수학 시간에 배운 행렬을 기억하시나요? 가로를 행, 세로를 열이라고 하며 왼쪽 위부터 오른쪽 아래까지 순차적으로 숫자가 입력되어 있는 집합을 행렬이라고 합니다. 2차원 배열은 가장 왼쪽 위 순서 번호가 (0,0)인 행렬이라고 생각하시면 됩니다.
  3. 13번째 줄에서 17번째 줄까지 반복문을 통해 2차원 배열의 데이터를 출력합니다. 2중 for 문을 사용한다는 것 이외에 1차원 배열과 크게 다른 부분은 없습니다.

 

 위 예제에서 사용한 배열이 메모리에 어떻게 할당됐는지 살펴보면 아래 그림과 같습니다.

 

 

 

 메모리 구조를 살펴보면 1차원 배열에서는 기본 자료형이 입력되어 있던 공간에 배열이 들어있는 것을 알 수 있습니다. 즉, 2차원 배열이란, "배열의 배열" 이 되는 것입니다.

 

 

728x90
728x90

'비전공자의 개발과 친해지기 > 배열' 카테고리의 다른 글

[JAVA : 배열]1. 배열  (0) 2022.04.10