클라이언트/ 서버/ 엔지니어 " 게임 개발자"를 향한 매일의 공부일지

반복문과 배열 그리고 예외 처리 16 - 이차원 배열 기초 개념 본문

프로그래밍 언어/자바

반복문과 배열 그리고 예외 처리 16 - 이차원 배열 기초 개념

huenuri 2024. 8. 13. 10:45

엘리스로 이차원 배열까지 학습을 마쳤으나 이제는 수업 영상을 들으면서 좀더 심화적인 내용을 학습해 보려고 한다. 새벽 내내 실력 확인 테스트로 배열 문제를 많이 풀어보았으니 내용이 많이 어렵지는 않을 것 같다.


 

 

 

 

2차원 배열

 

 

1. 이차원 배열 개념 

 

 

 

 

 

 

 

이전에는 이렇게 하면 값이 출력이 되었지만 2차원 배열에서는 이렇게 해도 주소값이 출력되며 나오지 않는다.

 


 

 

 

 

 

 

2차원 배열을 하나씩 할당해주면 이와 같다.


 

 

 

 

 

 

 

arr2[0]에서는 전체 길이가 5이고, 0번 배열에 5였다면, arr에서는 전체 길이가 5이고 arr[0] 배열의 길이는 3이 된다. 이렇게 각각의 배열에 따라 할당되는 내부 배열이 다르기 때문이다.


 

 

 

 

 

 

 

조금 전에 5번 반복했던 arr2를 for문을 사용하여 줄일 수 있다. 하지만 여기서는 5라고 배열의 길이를 지정해주었지만 arr2.length로 하면 어떤 길이에서든지 변할 수 있는 배열이 만들어진다.


 

 

 

 

 

 

 

for문에서 arr2의 첫번째 배열 공간만 다르고 두번째부터는 모두 같게 반복이 되고 있음을 알 수 있다.


 

 

 

 

반복되는 부분을 for문으로 묶게 되면 다음과 같이 줄일 수 있다.


 

 

 

 

 

 

 

이제 이 5줄의 숫자를 출력하는 코드를 만들어보기로 하자.


 

 

 

 

어떻게 하면 5줄이 모두 출력될 수 있을까?

 

 


 

 

 

 

앞의 숫자가 바뀜에 따라 배열의 값도 이렇게 바뀌게 된다. 


 

 

 

 

j 변수를 하나 추가해주었지만 같은 행이 반복되고 있다. 앞의 인덱스를 j로 바꾸어주면 이렇게 잘 출력이 된다.


 

 

 

 

 

여기까지 오는데 참으로 많은 단계를 거쳤다. 사실 마지막 문장 이것만 보고 지금까지 잘 이해하지 못했으나 이렇게 강의 영상을 들으며 확실히 이해할 수 있었다.


 

 

 

 

2. 이차원 배열 출력하기

 

앞에서 비슷한 문제를 풀어보았으니 이 문제는 가능하면 혼자서 풀어보기로 했다.

 


 

 

 

 

 

이렇게 잘 출력이 되고 있다. 조금 전까지만 해도 실력 확인 테스트에서 이러한 배열 문제를 정말 어려워했는데 이제는 충분히 풀 수 있게 되었다.


 

 

 

 

학습을 마치고

이제 다음 포스트에서 이차원 배열을 다루는 더 많은 예제들을 학습해볼 것이다. 기본 개념은 이 정도도쯤 하면 충분했다. 이차원 배열을 그동안 정말 어렵게 생각했는데 학습해보니 별로 그렇지 않았다.