본문 바로가기
프로그램이야기/JAVA

[자바]8-2. 반복문-3(중첩 for 문)

by Doinge 2020. 2. 8.
728x90
반응형

안녕하세요 Doing입니다. 오늘은 중첩 for 문에 대해 다뤄보도록 할게요

말 그대로 for 문이 여러 개 있는 것입니다.

중첩 for 문 구조

for(초기화;조건식;증감연산){
 for(초기화;조건식;증감연산){
   반복내용;
}
반복내용;
}

 

안에 있는 for 문은 내부 반복, 바깥 for 문은 외부 반복입니다.

먼저 외부 반복에서 제어 변수를 반복 실행 후 외부 제어 변수 1증가에 따른 내부 반복을 실행합니다.

이게 말이 좀 어려운데

예제를 통해 한번 보도록 하겠습니다. 이런 식으로 삼각형을 출력해 보도록 하겠습니다.

생각을 한번 해볼게요 외부 반복으로는 5번이 필요하고 내부 반복으로는 순차적으로 늘어나야 되겠네요

1행에서 * 1개, 2행에서 *2개 ..... 5행에서 * 5개 식으로 늘어납니다.

밑에 코드같이 보시겠습니다

4행에서 외부 반복이 실행됩니다. 4행을 보시면 i가 1부터 5이하까지 1씩 증가죠?

그럼 1, 2, 3, 4, 5 이렇게 5번이 반복이 됩니다.

말로 풀어보자면 i가 1일 때 5행으로 넘어와 j는 0이 되고 j는 0부터 i(1)까지 j++이죠?

조건을 보면 j<i => 0<1이므로 참입니다. 따라서 *는 하나가 출력이 되고 j가 1증가함에 따라 j는 1이 되고 j<i의 조건이 거짓이기 때문에 내부 반복문을 빠져나와 8행이 실행되고 다시 4행으로 넘어가 i는 2가 됩니다.

이해가 좀 되셨나요? 머릿속으로 그림을 그려가면서 해야 해요 i가 2일 때는 5행에서 j가 0, 1일 때 조건이 참이므로 *이 2개가 출력이 되겠죠? 이런 식으로 반복문이 진행되며 삼각형이 출력되는 것입니다.

다른 예제를 한번 보도록 할게요

1~25까지 사각형 모양으로 출력해 볼게요

결과 창으로 먼저 보면 외부 반복 5개, 내부 반복 5개죠? 어떤 식으로 코드를 짜야 할까요?

생각 한번 해보시고 밑에 코드같이 보도록 할게요

11행에 변수 n을 선언하고 0으로 초기화했습니다. (출력할 수 )

12행 외부 반복이 시작됩니다. i는 0부터 4까지 반복이죠? 5번의 반복이 이루어지고

13행 내부 반복에서도 5번의 반복이 이루어지고 n을 하나 증가시킨 후 출력합니다.

15행을 보시면 "/t"라고 있는데 이것은 자동으로 띄어주어 칸을 맞춰 줍니다.

이제 좀 이해가 가시나요?

중첩 for 문에 대해서는 예제도 많고 정보처리기사 알고리즘 과목에서도 많이 나와요 솔직히 많이 헷갈리고 어려워요 ㅠㅠ 인정 인정 ㅠㅠ 구글에서 중첩 for 문 예제 검색하면 별 모양 출력 등 많이 나오니 한 번씩 더 해보시길 바라요

그럼 다음 시간까지 바이바이~

728x90
반응형

댓글