목차
- for문 사용
- while문 사용
- do while문 사용
1. 반복문
- for 문이란
for 루프는 반복문의 일종으로, 특정한 부분의 코드가 반복적으로 수행될 수 있도록 합니다.
일반적으로 해당 루프에 연계된 루프 변수가 존재하며, 그 변수의 비교 및 증감을 위해 별도의 문법을 할애한 점이 구분됩니다.
- for문 코드 구성요소
for문에는 초기화, 조건식, 증감문 3가지를 활용하여 사용할 수 있으며 사용시에는
for( 초기화 ; 조건식 ; 증감문) 으로 이루어집니다.
조건식을 제외한 초기화 및 증감문은 for( ) 안에서 꼭 이루어질 필요는 없지만 초기화 및 증감문은 for문 안밖에서는 해주셔야합니다.
for문은 위 그림 과 같이 흐르게 됩니다.
- for 문 코드
#include <Iostream>
int main(void) {
for (int i = 0; i < 10; i++) {
std::cout << i << "\n";
}
return 0;
}
위 코드에 for 문을 보겠습니다.
int =0 은 위 설명에서 초기화에 해당합니다.
i < 10은 조건식에 해당하고
i++ 은 후위증감연산자로 증감문에 해당합니다.
for문안에서 std::cout << i << "\n"; 은 i값을 출력시키고 줄바꿈을 하는것입니다.
위 코드를 해석해보겠습니다.
1. int형 i를 0으로 초기화를 시킨다. - 초기화
2. 조건식대로 i가 10보다 작은지 판단한다. - 조건식
3. i값을 출력시키고 줄바꿈을 한다. - 조건식에 해당하니 for문안에 출력문 실행
4. 증감문대로 i값을 후위연산자로 1 증가한다. -> 증감문에의해 i값이 1이 됩니다.
5. 이젠 조건식으로 다시가서 i(=1)이 10보다 작은지 판단한다. - 조건식
6. 조건에 해당하니 i값을 출력시킨다. - 출력문실행
7. i 값을 증가시킨다. - i는 2가 됩니다. 증감문
8. 다시 조건식으로 가서 i(=2)가 10보다 작은지 판단한다.
. . . . . .
i값이 조건식(10보다 작다)에 해당하지 않으면 for문을 탈출하여 return 0; 을 만나 프로그램이 종료된다.
대충 흐름을 보시고 감이 잡히시나요?
위에 for문 흐름도 그림과 코드의 흐름을 비교하여 보시면 이해하기 수월합니다.
그럼 저 코드를 실행한 결과를 보겠습니다.
0부터 시작하여 조건식과 증감문을 흐르다가 i값이 10이 되니 조건식에 해당하지 않아서 return되어 프로그램이 종료된 결과입니다.
- while 문
While 루프는 반복문의 일종으로, 주어진 bool 자료형 조건을 기반으로 코드가 반복적으로 수행 할 수 있게 도와줍니다.
위 그림은 While문 흐름도 입니다.
- while 문 코드
#include <Iostream>
int main(void) {
std::cout<<"반복문 시작"<<"\n";
int i = 0;
while (i < 5) {
std::cout << i << "\n";
i++;
}
return 0;
}
while문은 for문과 달리 조건식만 들어갑니다. 그래서 초기화를 미리 해주시고 증감식은 while문 안에서 하도록 합니다.
while문 설명에서 bool 자료형 조건 기반이라고 했는데, 이는 i < 5 가 참일경우 bool 값인 true와 false로 while문을 실행할지 말지 결정하게 됩니다. true일경우 실행이고 false면 while문을 탈출합니다.
int형 i 값을 초기에 0으로 초기화시킨후,
while문에서 조건에 맞는지 판단 후 true를 반환하면 while문 실행 / false 반환시 탈출하게 되며
4를 출력시킨 후 i++로 증감시켰을 때 i값이 5가 되며 조건문에서 false를 반환하게되어 탈출하여 프로그램이 끝난 모습입니다.
- do While문
do while문은 while문과 동일하지만 차이점이라고 한다면 while문은 첫 시작에서 조건에 해당하지않으면 바로 탈출하여 실행을 안할 수 있지만, do while문은 반드시 한번은 실행한다는 것입니다.
코드로 보겠습니다.
#include <Iostream>
int main(void) {
std::cout<<"반복문 시작"<<"\n";
int i = 0;
do {
std::cout << i << "\n";
i++;
} while (i < 5);
return 0;
}
do { 실행문 } while(조건문) 으로 되있는 구조입니다.
출력 결과는 while문과 동일합니다.
위 설명에서 반드시 한번은 실행한다는 설명은 while문은 i < 0 일때 출력문 자체를 출력시키지 않지만
do while문은 조건문이 똑같이 i < 0이여도 위에서 아래로 읽어오는 컴파일의 특성상 출력문을 반드시 한번은 실행 시킨 후 조건문으로 가기 때문에 반드시 한번은 실행한다는 것 입니다.
#include <Iostream>
int main(void) {
std::cout<<"반복문 시작"<<"\n";
int i = 0;
do {
std::cout << i << "\n";
i++;
} while (i < 0);
return 0;
}
위 코드의 출력 결과입니다.
원래라면 조건식에 해당하지 않으니 바로 탈출해야하지만 출력문이 조건문보다 먼저 읽히므로 출력되는 모습을 볼 수 있습니다.
이상입니다.