[C++] 반복문
👻 반복문
특정 조건을 만족할 때까지 명령문을 실행하는 문을 뜻한다. 조건에 부합하면 계속 반복되고 조건에 부합하지 않으면 반복문을 빠져나오게 된다. while
, for
문이 있다.
게임을 끌 때까지 계속 실행하라, 목적지에 도착할 때까지 계속 이동하라 등 여러 조건에 사용된다.
🌱 while문
while (조건문)
{
명령문
// 조건문을 컨트롤해주지 않으면 무한 loop에 빠지게 된다.
제어식
}
// do ~ while문
do
{
명령문
} while (조건문);
💡
일반적으로 while문은 조건을 먼저 판별한 후 명령문의 실행 유무가 정해지지만,do ~ while
문은do
안의 명령문이 무조건 한 번은 실행된 후 조건을 판별한다.
조건문에false
를 넣으면 일반적인 while문은 한 번도 명령문이 실행되지 않지만, do ~ while문은 명령문이 한 번 실행되고 종료된다.
🌱 for문
for (초기식; 조건식; 제어식)
{
명령문
}
제어식을 괄호 안에 적으니 확실히 while문보다 실수를 할 일이 좀 더 적다. 성능적으로는 별 차이 없다.
👻 break와 continue
반복문을 실행하다가 중간에 빠져나오거나 코드를 스킵하고 싶을 때 사용하는 명령문이다. break
와 continue
는 둘 다 반복문 안에서 사용하지만 의미가 살짝 다르다.
🌱 break
반복문 안에서 해당 문을 만나면 그 즉시 가장 가까이 있는 반복문 하나만 빠져나오게 된다.
// 해당 코드는 break를 만나면 조건식2 while문만 빠져나오게된다.
while (조건식1)
{
while (조건식2)
{
// 반복문에서 빠져나가주세요
break;
}
}
🪐 예시로 개념 잡기
int round = 1;
int hp = 100;
int damage = 10;
// 무한 루프 : 전투 시작
while (true)
{
hp -= damage;
if (hp < 0)
hp = 0; // 음수 체력을 0으로 보정
// 시스템 메시지
cout << "Round : " << round << ", 몬스터 체력 : " << hp << endl;
// 나갈 수 있는 조건 판별 위해
if (hp == 0)
{
cout << "몬스터 처치!" << endl;
// if문이 아닌 while문을 빠져나가라는 의미
break;
}
if (round == 5)
{
cout << "제한 라운드 종료" << endl;
break;
}
round++;
}
여기서
break
문은 if문 안에 있지만 반복문을 빠져나가는 의미이므로 if문이 아닌 상위의 while문(무한loop)에서 빠져나가게 된다.
🌱 continue
반복문 안에서 해당 문을 만나면 아래 코드는 더 이상 실행하지 않고(스킵의 개념) 다시 반복문 안 첫 명령문을 실행하게 된다.
while (조건식)
{
명령문1;
// 명령문2는 스킵해주세요
continue;
명령문2;
}
위의 경우 명령문1 실행 👉 continue 👉 (명령문2 스킵) 제어식 👉 명령문1 실행 👉 ...
순으로 코드가 진행된다.
🪐 예시로 개념 잡기
// 1부터 10 사이의 홀수만 출력하기
// 1, 3, 5, 7, 9
for (int i = 1; i <= 10; i++)
{
// 짝수 판단
bool isEven = ((i % 2) == 0);
if (isEven)
// 아래 코드 skip
continue;
cout << i << endl;
}
여기서
continue
문은 if문 안에 있지만 아래 코드를 스킵하고 제어식으로 가라는 의미이다.
👻 글을 마치며
이번 시간엔 반복문과 break, continue에 대해서 공부해보았다. 사실상 프로그래밍은 분기문과 반복문이 8할을 차지해서 이정도면 거의 모든 기능을 구현할 수 있게 되었다! 그리고 break와 continue가 동작하는 정확한 지점을 알게 되었다. 잘 활용한다면 좋은 코드를 만들어낼 수 있을 것 같다.
Leave a comment