본문 바로가기

develop/Java

for 문과 while문 - 중첩 (2)

1. 중첩 for문

 

 

 

- for 문 내부에 또 다른 for 문을 사용해 반복이 중첩되는 for문이다. 

바깥의 for문의 조건문이 true가 되면 내부의 for문이 작동되는데 내부의 for문이 한 바퀴 다 돈 후에

바깥 for문의 두번째 바퀴가 시작된다.

 

그래서 중첩 for문의 전체 반복 횟수는 안쪽 for문 반복 횟수와 바깥 for문 반복 횟수를 곱한 값이다.

 

<기본 문법>

 

for (초기식1; 조건식1; 증감식1){
	 문장1;
	for (초기식2; 조건식2; 증감식){
    	문장2;
    }
     문장3;
}

문장1은 바깥 for문의 시작지점에서 시작되며 바깥 for문의 반복 횟수만큼 반복된다. 

문장2는 안쪽 for문의 시작지점에서 시작되며 안쪽 for문 반복 횟수 * 바깥 for문의 반복 횟수

문장3은 안쪽 for문의 반복이 끝난 뒤 실행되고 바깥 for문의 반복 횟수만큼 반복된다. 

 

 

바깥 for문 2번 반복. 안쪽 for문 3번 반복

for (int i = 1; i<=2; i++){
	System.out.println("i = " + i); <= 2번 돈다
    
    for(int j = 1; j<=3; j++){
    	System.out.println("j = " + j); <= 6번 돈다
    }
    
    System.out.println("------"); <= 2번 돈다
}

 

출력하면 요렇게 

 

 

2. 중첩 while문

 

for문과 같은 구성이다. 

 

 

3. 또 다른 특징

 

반복문에서 제어변수의 값을 리터럴 대신 변수로 바꿀 수 있다.

i <= 10; 이 아니라 i  <= j; 로도 가능하다. 

변수의 값이 변경될 수 있으므로 제어변수의 값도 상황에 따라 변할 수 있다. 

==> 반복 횟수가 유동적으로 변한다. 

 

 

ex. for 중첩으로 구구단 만들기.

(2단에서 9단까지)

int dan = 2;
for(int i = 1;i<=9;i++){
	System.out.println(dan + " 단 ");
    	for(int i = 1;i<=9;i++){
        System.out.println(dan + " * " + i + " = " + dan * i);
        }
        dan++;
   } 

 

while 중첩으로 구구단 만들기.

(2단에서 9단까지)


int dan = 2;
while (dan<=9){
	System.out.println(dan + "단");
    
    int i = 1;
    while(i<=9){
     System.out.println(dan + " * " + i + " = " + dan * i);
     i++;
    }
    dan++;
} 

'develop > Java' 카테고리의 다른 글

무한 루프, do-while, 배열(Array)  (0) 2021.01.27
반복문 제어 break, continue  (0) 2021.01.27
for 문과 while문 - (1)  (0) 2021.01.23
switch 조건문  (0) 2021.01.19
if 조건문  (0) 2021.01.19