알버트의 개발하는 블로그

C 언어 / C++ 언어 제8강 for 반복문 이용해서 피라미드 출력하기 (중첩 반복문) 본문

프로그래밍 언어/C & C++

C 언어 / C++ 언어 제8강 for 반복문 이용해서 피라미드 출력하기 (중첩 반복문)

알버트 2021. 4. 29. 14:07

 

이번 시간에는 별피라미드를 출력하면서 반복문을 연습해보겠습니다.

함께 써볼 반복문을 for 반복문입니다. 이번 시간을 통해서 for 반복문이 어떻게 반복을 하게 되는지 배워보겠습니다.

 

 

일단 간단하게 빈 프로젝트를 만드시고 소스파일을 만드셔서 이 코드를 적어주세요.

대표사진 삭제

사진 설명을 입력하세요.

보시면 for문 안에 for문이 하나 더 들어간 것을 볼 수 있는데, 이것을 중첩 반복문이라고 합니다. 프로그래밍을 하기 위해선 중첩 반복문도 잘하셔야 합니다. 주석으로 간단하게 설명해놨는데요, 첫번째 for문은 별표시를 총 10번 찍고 줄바꾸는 작업까지의 과정을 총 10번 반복시켜줍니다.

그리고 두번째 for문은 별표시를 총 10번 반복해서 출력해주는데요. 두번째 for문이 끝난 뒤에 '\n'을 통해서 줄바꾸는 작업을 실행해줍니다. 그리고 나면, 다시 첫번째 for문으로 돌아가게 되겠죠?

그 다음 i는 1이 되고 또 실행해줍니다. i가 9가 될때까지 반복해주며 총 10회를 실시하게 됩니다.

 

 

자 한번 실행해보면??

대표사진 삭제

사진 설명을 입력하세요.

이처럼 별이 한줄에 10개씩 총 10줄이 출력된 것을 볼 수 있습니다.

 

 

 

다음으로, 이 코드를 적어주세요.

대표사진 삭제

사진 설명을 입력하세요.

이번엔 각 줄에 맞춰서 줄이 바뀔때마다 별표시를 한개씩 더 출력해보겠습니다.

여기선 두번째 for문의 조건만 살짝 바꿔주면 됩니다. 굉장히 간단하죠? 두번째 조건을 j < i + 1;로 바꿔주면 되는데요.

 

j는 변함이 없지만 i의 값은 줄이 바뀔때마다 바뀌게 됩니다. 그래서 줄이 바뀔때마다 i가 증가하므로, 별표시를 더 많이 찍게 됩니다. 한번 실행해볼까요?

대표사진 삭제

사진 설명을 입력하세요.

이렇게 실행이 된것을 볼 수 있습니다. 각줄이 바뀔때마다 i가 늘어나는 것을 이용해서 별을 더 많이 찍어주었습니다.

 

 

이번엔 한번 방금 피라미드에서 반대 모양의 피라미드를 찍어볼까요? 원리는 같습니다. for문의 변수인 i와 j를 요리해주면 됩니다.

대표사진 삭제

사진 설명을 입력하세요.

이렇게 코드를 적어주면 되는데요. 맨 첫줄에는 별표시를 10개찍어주어야 하겠죠? 그래서 초기값 j를 10으로 두었고, i값은 0으로 시작하게 됩니다. 그러면 총 10개를 찍을 겁니다. 그리고 나서 줄을 바꿔주겠죠.

두번째 줄은 어떻게 될까요? i는 1이 되겠죠. i가 1인 상태에서 두번째 for문을 돌려주면?

당연히 두번째 for문에 들어가있는 조건인 i가 1이 증가했으므로, 총 9개를 찍게 되는 것을 알 수 있습니다.

 

 

한번 실행해보겠습니다.

대표사진 삭제

사진 설명을 입력하세요.

짜잔~ 이렇게 멋진 역삼각형 피라미드가 출력이 된 것을 볼 수 있습니다.

 

 

이처럼, for문은 for문안에 들어가는 조건변수를 잘 요리해주면 프로그래밍을 맛깔나게 할 수 있답니다!

다음 시간부터는, 이제 본격적으로 약간 복잡한 프로그래밍을 해보도록 하겠습니다. 감사합니다~