본문 바로가기
c++

11. 반복문,while문,do-while문,for문

by 래끼 2020. 1. 2.
728x90
반응형

C++ 에서는 반복적으로 문장을 실행하기 위해서 반복문을 사용할 수 있습니다.

 

C++이라는 단어를 반복해서 10번 출력한다고 생각해봅시다.

 

아마 반복문에 대해 알지 못한다면 이런코드를 떠올릴 수도 있습니다.

cout << "C++" << endl; 

이 문장을 10번 똑같이 입력하는 건 너무 나도 수고스러운 일입니다.

이러한 과정을 간결하게 만들수있게 도와주는게 바로 반복문 입니다.

 

 

1. while문

먼저 while문을 이용해서 "C++"이라는 단어를 10번 출력하는 프로그램을 만들고 설명해보도록 하겠습니다 : )

 

 

아래는 출력화면 입니다.

 

 

while문은 7번째줄의 while(count<10) 처럼 while (반복조건) 형식으로 조건을 작성합니다.

while문의 안에는 반복조건에 참에 해당할 때 반복할 내용을 적습니다.

 

위의 코드에서는 int count =0로 초기화된 count가 10 미만 일때만 반복문의 내용을 실행한다는 조건을 가지고 있습니다.

10번째줄의 count++는 반복문이 한번 실행될때 마다 count변수를 1씩 높여줘서 반복내용이 몇번 실행될지 제어하는 역할을 해줍니다.

 

 

*만약 10번째줄의 count++가 없다면 어떻게 될까요?

 >>count변수는 처음에 선언된 0인 상태로 계속 반복조건(count<10)을 만족하게 되어 원하는 반복횟수를 넘어 프로그램이 멈추지 않고 계속 실행하는 '무한루프'가 됩니다. 

 

 

while문을 이용해서 단순히 출력횟수만 제어하는 것 뿐만 아니라 숫자계산 또한 간단하게 하는 코드를 만들 수 있습니다.

 

 

아래는 while문을 이용하여 1부터 9까지의 합을 구하는 프로그램입니다.

위의 while문은 1로 초기화된 i가 10 미만일때 라는 반복조건을 가지고 있는 while문입니다.

반복조건을 만족했을 때 0으로 초기화된 sum에 해당 i를 더하는 반복을 합니다.

 

출력화면은 다음과 같습니다.

 

 

 

아래는 while문의 흐름도 입니다.

흐름도를 보면 이해가 쉬워요 : )

 i가 반복조건을 만족하면 -> 반복할 문장을 실행합니다.

i가 반복조건을 만족하지 못하면 -> 즉시 while문을 빠져나오게 됩니다.

 

 

 

 

2. do - while 문

 

do-while문은 우선 반복 내용이 실행되고 나서 반복조건을 검사하는 것을 제외하고는 while문과 동일합니다.

 

위에서 했던 1에서 9까지의 합을 구하는 프로그램을 do-while문의 문법에 맞게 만든 프로그램입니다.

 

do-while문은 while문과 다르게 우선 반복내용을 한번 수행하고 그 다음에 반복조건을 검사하여 계속할 것인가 결정합니다.

 

출력결과는 while문에서의 내용과 같고 이 코드의 흐름도는 다음과 같습니다.

 

while문의 흐름도와 비교하면 이해가 쉬울것 같습니다 : )

do-while문은 while문의 변형으로 while문과 다르게 반복내용이 한번 수행되고 반복조건은 나중에 검사하게 된다는 점을 기억하면 반복조건이 참인지 거짓인지를 분별하는 것 같이 그 외의 것은 while문과 같습니다.

 

 

 

 

3. for 문

 

for문 또한 while문,do-while문과 같이 간결하게 반복문을 표현하는 구문 중 하나입니다.

 

for문의 문법은 다음과 같습니다.

for(초기실행; 반복조건; 각 반복 후 실행)

{

    //반복 내용

    문장(들) ;

}

 

쉬운 이해를 위해 for문을 사용한 간단한 프로그램을 보여드리고 설명드리겠습니다.

1부터 9까지의 합을 for문의 문법에 맞게 표현한 코드입니다~

 

위의 for문의 흐름도는 다음과 같습니다.

흐름도를 보면 이해가 쉽습니다.

7번째 줄에 for (int i=1; i<10; i++)

초기 실행으로 int i를 1로 설정하고 i가 반복조건을 충족했을 때 sum += i 를 실행하게 되고 반복후 실행할 i++를 실행합니다.

초기실행 , 반복조건 , 각 반복 후 실행을 세미콜론(;)으로 꼭 구분해 주어야합니다!

728x90
반응형

댓글