중첩반복문(nested loop) :
반복문안에 다른 반복문이 위치하는 것을 의미한다.
그림과 같이 바깥쪽 for문
에서 시작해
안쪽 for문
으로 들어오고,
안쪽 for문
의 반복이 끝나면
다시 바깥쪽 for문
으로 돌아가 계산을 반복한다.
이때, 바깥쪽 for문
에서는 초기화 값으로 i
를 사용하고
안쪽 for문
에서는 초기화 값으로 j
를 사용한다.
for문의 특징
- for문이 초기화 값은 for문안에서만 가능하다
- System.out.println(i); //for문 밖에서는 쓸 수 없다.
- 다른 for문에서 사용한 이름은 다른 for문에서 사용할 수 있다.
for반복문만 사용했을 때, 다음과 같이 입력하면,
for(I = 0; i<5 ; i++)
콘솔창에는
i=0
i=1
i=2
i=3
i=4
가 출력된다.
중첩반복문을 사용했을 때는 다음과 같이 입력하면,
for(i = 0; i<5 ; i++) {
for(j = 0; j<5 ; j++) }
와 같이 25번 반복된 값이 출력된다.
🚩예시
for (int i = 0; i < 2; i++) {
System.out.println("for문 i에서 반복중입니다");
for(int j = 0; j < 2; j++) {
System.out.println("i : "+i+", j : "+j);
}
System.out.println("내부 for문이 종료되었습니다");
}
🏁연습 문제 (구구단 2단~9단까지 출력하기)
for (int i = 2; i <= 9; i++) {
System.out.println("<"+ i +"단>");
for (int j=1; j <= 9; j++) {
System.out.println(i + " X "+ j + " = " + (i * j));
}
}
// 이하 구구단은 생략
🏁연습 문제 (5x5박스 출력하기)
for (int i=0; i<5; i++) {
//가로로 별 다섯개를 출력함
for (int j=0; j<5; j++) {
System.out.print(" * ");
}
//별 5개 출력 후 줄 바꿈
System.out.println("");
}