이중 반복문은 표(격자) 모양의 데이터를 만들 때 필수적으로 사용한다.
for (int i = 0; i < number; i++) { // 바깥쪽: 행(줄) 관리자
for (int j = 0; j < number; j++) { // 안쪽: 열(칸) 관리자
System.out.print(count + " "); // 실제 데이터 출력
}
System.out.println(); // 한 줄이 끝나면 엔터(줄바꿈)
}
i와 j 두 개가 필요한가?i)이 한 번 돌 때, 안쪽 반복문(j)은 정해진 횟수만큼 전체를 다 돌아야 다음 줄로 넘어간다.number와 count5 대신 변수 number를 쓰는가?5를 직접 적어두면 나중에 크기를 변경할 때 모든 숫자를 일일이 찾아 고쳐야 하며, 이 과정에서 실수가 발생할 확률이 높다. 맨 윗줄의 number 변수 값만 수정하면 아래의 모든 반복문 조건이 자동으로 변경되므로 효율적이다.count는 반복문 밖에서 선언하는가?int count = 1;을 for문 안쪽에 넣으면, 줄이 바뀔 때마다 변수가 다시 선언되어 숫자가 계속 1로 초기화된다.count++를 해줘야만, 반복문이 도는 동안 숫자가 누적되어 1, 2, 3... 25까지 이어진다.print vs println가장 기초적이지만 실기 시험에서 가장 많이 실수하는 부분이다.
System.out.print(): 괄호 안의 내용을 출력한 뒤 커서를 그 자리에 둔다. 숫자를 옆으로 나열할 때 사용한다.System.out.println(): 내용을 출력한 뒤 혹은 내용 없이 사용하면 줄바꿈(Enter)을 수행한다. 한 줄 작성이 끝난 뒤 다음 행으로 넘길 때 사용한다.j <= i)안쪽 반복문의 끝점을 고정된 숫자(number)가 아닌 바깥쪽 변수(i)로 잡으면 줄마다 출력되는 개수가 달라진다. 1번 줄에서는 1개, 2번 줄에서는 2개씩 찍히며 삼각형 모양이 형성된다.
(number - 1 - i) * number + 1과 같은 식을 사용하여 각 행의 시작 숫자를 강제로 지정한다.%를 활용한다. (i + j) % 5 + 1 공식을 사용하면 숫자가 5를 넘는 순간 다시 1로 돌아가며 빙글빙글 도는 구조를 만들 수 있다.