반응형
[lv1/C++] 반복문 while, do ~ while
while
while문은 조건식이 참인 경우에만 내용을 반복한다.
for문과 비교하면 초기값, 반복식에 해당하는 부분이 없다.
그래서 초기값과 반복식에 해당하는 문장이 while문 내에 있어야 반복과 중단이 가능하다.
while의 기본 구문은 다음과 같다.
while (조건식)
{
반복 내용;
}
do~while
while문은 조건을 먼저 판단한 다음에 참인 경우 반복할 내용을 실행 하지만
do~while문은 while문과 다르게 반복 내용을 무조건 한 번 실행 시킨 후 조건을 판단하여 반복 여부를 결정하고, 조건식 다음에는 세미콜론(;)을 붙인다.
do~while의 기본 구문은 다음과 같다
do
{
반복 내용;
}while(조건식);
1부터 10까지 더하는 프로그램을 for문과 함께 비교해 보자
// for
#include <iostream>
using namespace std;
int main()
{
int sum = 0;
for (int i = 1;i <= 10;i++) {
sum += i;
}
cout << sum << endl;
return 0;
}
// while
#include <iostream>
using namespace std;
int main()
{
int sum = 0;
int i = 1;
while (i <= 10) {
sum += i;
i++;
}
cout << sum << endl;
return 0;
}
// do~while
#include <iostream>
using namespace std;
int main()
{
int sum = 0;
int i = 1;
do {
sum += i;
i++;
} while (i <= 10);
cout << sum << endl;
return 0;
}
반복문에는 없어서 안될 친구들이 있다.
'break'와 'continue' 명령이다.
break는 해당 반복문을 빠져나올 때 사용하며
continue는 다시 처음으로 돌아가 반복할 때 사용한다.
break와 continue의 예시를 보자
#include <iostream>
using namespace std;
int main()
{
int sum = 0;
int i = 1;
while (true) {
sum += i;
if (i < 10) {
i++;
continue; // 다시 while 조건식 부터 시작
}
else {
break; // while의 반복문을 빠져나감
}
cout << " continue, break 명령어로 인해 출력 되지 않음 " << endl;
}
cout << sum << endl;
return 0;
}
i가 10보다 작을 경우 1을 증가시키고 continue명령을 만나 while(true) 조건식으로 바로 이동한다.
i가 10 이상일 경우 break명령을 만나 while(true)가 감싸고 있는 중괄호를 벗어난다.
결과적으로 continue와 break 명령으로 인해 중괄호 안에 있는 출력문은 실행되지 않는다.
짧은 코드에서는 continue 명령어 사용이 알기 쉽지만, 현업에 들어서게 된다면 코드의 유지보수, 복잡성, 가독성 때문에 자주 사용하는 것은 지양하길 바란다.
반응형
'Programming > C, C++' 카테고리의 다른 글
LV1 C++ 데이터 형식(자료형) 종류와 범위 (0) | 2022.09.06 |
---|---|
LV1 C++ 배열 Array 정리 (0) | 2022.09.06 |
LV1 C++ 반복문 for문 (0) | 2022.09.02 |
LV1 C++ 조건문 (선택문) switch case문 (0) | 2022.09.02 |
LV1 C++ 조건문 if, else if, else (0) | 2022.09.02 |