이번에는 다중 반복문과 배열에 대해 알아보자.
다중 반복문을 보기 전에 반복문의 설명을 보고 오는 것이 좋다.
https://kimtaesoo99.tistory.com/45
다중 반복문은 말 그대로 여러 개의 반복문이 중첩된 것이다.
중첩 for문을 보자
for(int i=2;i<=9;i++){
for(int j=1; j<=9; j++){
System.out.println(i+" * "+ j +" = "+i*j);
}
}
위 이중 for문의 실행결과는 아래와 같다.(출력의 더 아래 부분은 생략)
구구단을 출력하는 코드인데 마지막인 9 * 9 = 81까지 출력되는데, 너무 길어서 중간에 잘랐다.
코드를 해석해보면, i가 2일 때 아래 for문의 j값이 1부터 9까지 실행된다.
이후 다시 i의 값이 1 더해지고, 다시 j가 1부터 9까지 실행되는 것을 반복한다.
이로써 우리는 중첩 for문의 규칙을 알 수 있다.
for문 안에 또 다른 for문을 포함시킬 수 있다.
for문의 중첩 횟수에는 거의 제한이 없다.
다음으로는 중첩 while문을 보자.
int i =2;
while (i<=9){
int j=1;
while (j<=9){
System.out.println(i+" * "+j+" = "+ i*j);
j++;
}
i++;
}
위 코드의 실행결과는 위의 2중 for문과 동일하다.(출력의 더 아래 부분은 생략)
while문에서 조건식이 거짓이 되면, while문을 탈출한다는 사실만 알아도 쉽게 이해할 수 있다.
다중 반복문의 예제로는 아래에 링크를 두었다.
https://kimtaesoo99.tistory.com/46
다음으로는 배열에 대해 알아보자.
우선 배열이란?
같은 타입의 여러 변수를 하나의 묶음으로 다루는 것이다.
많은 양의 데이터를 다룰 때 유용하다.
배열의 각 요소는 서로 연속적이다.
배열을 선언한다고 해서 값을 저장할 공간이 생성되는 것이 아니라 배열을 다루는데 필요한 변수가 생성된다.
배열을 보자
int[] score = new int[5];
score[0] = 100;
score[1] = 90;
score[2] = 80;
score[3] = 70;
score[4] = 60;
위와 같은 방식으로 배열에 값을 넣어줄 수 있다.
(*참조 배열의 길이는 '배열 이름. length'로 알 수 있다. score.length는 5가 된다.)
배열에도 다차원 배열이 존재한다.
예를 들어 한 반의 수학, 영어, 국어 성적을 저장하고 싶다고 한다면, 어떻게 할 수 있을까?
다중배열을 보자
int[][] score = {{100,100,100},
{20,20,20),
{30,30,30),
{40,40,40},
{50,50,50}
};
위의 코드만 보면 쉽게 이해되지 않을 것이다. 아래 그림을 보고 비교해보자.
score배열은 score [5][3]인 배열이다.
여기서 앞의 [5]는 학생 자체를 의미한다. 즉 0~4번 학생이다.
뒤의 [3]은 각각 수학, 영어, 국어의 성적을 의미한다.
배열의 장점을 활용하면, 만약 내가 2번 학생의 영어 성적을 알고 싶다면?
int a = score [1][1]로 구할 수 있다.
우리가 주의해야 할 점은
배열의 첫 번째 시작은 0이라는 것이다.
따라서 2번 학생이 배열에서는 1번이 되고, 2번째에 있던 영어의 성적이 1번이 된다.
우리가 알 수 있는 점이 있다.
'[ ]'의 개수가 차원의 수를 의미한다.
이번에는 다중 반복문과 배열의 활용 문제를 보자.
https://kimtaesoo99.tistory.com/47
개선점이나 오류가 있다면, 댓글 부탁드립니다.