본문 바로가기
JAVA-Spring/배열

JAVA 자바 [ 객체 지향 프로그래밍 ] 2차원 배열, 확장 for문 응용

by Super Santj 2019. 7. 18.

2차원 배열에 대해 알아보자. JAVA 자바에서는 배열의 첫 번째 시작이 중요하다. 2차 배열은 어떤 방에 들어갔는데 또다른 방이 있는 듯한 2중으로 되어있는 문과 같은 구조라고 생각을 하면된다.

행 마다 열의 갯수가 다 다른것을 가변배열이라 한다. b[0]의 열의 갯수가 3개, b[1]의 열의 갯수가 2개, b[2]의 열의 갯수가 4개 인것처럼 아래의 사진을 참고하면 가변배열의 정의를 사진으로 잘 정리해져있다.

 

자바에서는 2차원 배열까지만 하여도 무난하다고도 한다. 그렇다면 우리는 2차원 배열을 만드는 방법에 대해 알아보자.

우선 2차원 배열의 형식을 기록해본다.

형식 =>        배열의자료형 배열명[][] = new 자료형[행수][열수]

ex) int c[ ][ ] = new int[3][3];  <== 이런경우로 생성도 가능은하다. 하지만 약간의 노가다 느낌이 많이 난다. 일일이 직접 다 데이터를 입력해야만 하기 때문.

그렇다면 보다 효율성이 있는 입력 방법은 무엇일까?

형식 =>        배열의자료형 배열명[ ][ ]={{값1,갑2,,,,,,},{값3,값4,,,,}};

중괄호 안에 중괄호는 행을 뜻한다. 만약 {}안에 {}가 4개가 있다면 행이 4개 라는 의미이다.

이렇게 b의 0 행에 1열에 있는 값은 20 인것이다. 이렇게 호출이 가능하다. 하지만 행만 호출을 하게 됬을땐 아래와 같은 현상이 발생한다.

배열의 행의 값만 입력후 행의 값을 호출하면 주소값이 출력 된다. 즉 2차원 배열을 호출할땐, 가능한 행의 열을 지정하여 호출해야 정확한 값이 호출이 된다. 아무튼 반복문을 이용 행과 열을 호출하는 구문을 입력하자면 아래와 같다.

그리고 호출되는 구문을 입력한다. 그리고 호출까지 해본다면, 아래와 같은 사진의 결과가 출력된다.

즉 2차원 배열의 모든 데이터 값을 반복문은 for문의 2중 for문을 사용하여 행을 밖에서 반복해주고, 열을 안에서 반복해주며 행은 i로, 열을 j로 지정하여 모든 값을 호출해주는 방식인것이다.

이렇게 우리는 2중 for문을 이용하여 2차원 배열을 출력하는 방법을 배웠고, 추가적으로 확장 for문까지 숙지를 해보자.

확장 for문을 상용하여 2차원 배열을 출력해본다면, 배열의 첨자 계산과 상관없이 편리하게 출력하기 위함이다.

우선 각 차원별 정의 형식을 참고 해보자.

형식 _

for(int [] tmp :score)
for(2차원 배열의 자료형 [ ][ ] 배열명:3차원배열명)

for(1차원 배열의 자료형 [ ] 배열명:2차원배열명)  // [ ][ ](X)
for(1차원 배열의 자료형 출력변수명: 1차원배열명) // [ ](X)

해당 구문은 즉슨, 2차원 배열 b에서 1차원 배열의 값을 하나씩 꺼내서 temp에 저장을 하는것 이다. 

해당 구문은 1차원 배열을 각각의 변수 su에 저장 하는것 이다.

이렇게 출력을 한다면 우리는 확장 for문을 이용하여, 첨자 이용없이 2차원 배열 안에 있는 모든 데이터를 행과 열대로 출력을 할수가있다는 것을 알수있다.

 

댓글