Notice
Recent Posts
Recent Comments
Link
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

나의 IT일지

분기문(break문, continue문) 본문

프로그래밍 언어/C언어

분기문(break문, continue문)

세레프 2023. 2. 12. 06:01

 제어문이란 프로그램의 흐름을 제어하는 문법으로 조건문과 반복문이 있다.

  • 조건문이란 일정 조건을 만족시킬 때,  실행문을 실행하도록하는 문법으로, if문과 switch문이 있다.
  • 반복문이란 일정 조건을 만족하는 동안 같은 실행문을 반복적으로 실행하도록 하는 문법으로 while문과 for문이 있다. 

 그리고 이러한 제어문 안에서도 분기문이라는 것을 사용하는데, 분기문이란 제어문의 일종으로, 흐름을 가로채거나(continue문) 흐름에서 빠져나가게 하기(break문)  등 기존 흐름에 따르지 않고 다른 명령을 수행하도록 하는 문법이다.

 

 break문

반복문,조건문의 명령문을 탈출시키는 기능을 가진 제어문으로, 보통 반복문의 반복 실행을 즉시 끝낼 때 사용한다.

#include<stdio.h>

void main() {
	int sum = 0;
	int i;
	for (i=1; i <= 100; i++) {
		sum = sum + i;
		printf("%d까지의 합은 %d이다\n", i, sum);
		if (sum >= 200) { break; }

	}
	printf("합이 200보다 커지게되는 경우는 1부터 %d까지의 합이다.", i);
}

위 코드의 순서도
위 코드의 결과값

 위의 코드는 break문의 예시로, if문이 없었다면, 원래는 변수 i가 100이 되기 전까지 실행이  된다. 하지만 if문에 break문이 있어서 if문의 조건이 맞춰지면 자동적으로 for문을 탈출할 수 있게 된다. 즉 변수 i가 100이 되기 전에, 합이 200이상이 되면 해당 코드는 종료하게 되는것이다.

 

break문을 사용할 때, 주의해야 할 사항이 있다. break는 break문이 실행되는 실행문만 빠져나간다. 즉, 여러개의 반복문이 중첩된 경우에는 현재 위치한 반복문 하나만 빠져나간다.

while (...)
{

    for (...)
    {
     ...
        if(조건식) {break;}
    }
}
while (...)
{

    for (...)
    {
     ...
    }
    if(조건식) {break;}
}
for문만 탈출하고 while문은 실행된다. while문에서 탈출한다.

 

continue문

 반복문, 조건문의 실행을 중지하고 실행위치를 반복문이나 조건문의 실행문 뒤로 이동하는 제어문으로, 명령문을 건너뛸 때 사용한다.

#include<stdio.h>

void main() {
	int sum = 0, i;
	for (i = 1; i <= 100; i++) {
		if (i % 2 == 0) {
			continue;
		}
		sum = sum + i;
		printf("%d까지의 홀수의 합은 %d\n", i, sum);
	}
	printf("홀수의 합은 %d", sum);
}

위 코드의 순서도
위의 코드의 결과값

 위의 코드를 보면, 짝수일 때, contine문을 통해 "sum = sum + i", "printf("%d까지의 홀수의 합은 %d\n", i, sum)"명령을 무시하는 것을 알 수 있다.

 만약 if문이 없었다면, 원래는 홀수 뿐만 아니라 짝수까지 합한 것이 출력이 되어야 한다. 하지만 if문에 continue문이 있어서, if문의 조건이 맞춰지면 반복문의 다음 실행문의 명령들은 모두 무시하고 증감식으로 들어가게 된다. 즉 변수 i가 홀수이면, 변수 sum과 변수 i의 합을 변수 sum에 저장하고 출력하는 것이다.

 

 continue문을 while문에서 사용할 때, 실행문에 증감식을 넣어버리면 무한 반복이 되어버린다.

i = 1;
while (i <= 100){
    if(i % 3 == 0){
        continue
    }
    sum += 1;
    i++;
}

 만약 i의 값이 3일 경우, if(i % 3 == 0)이 참이 되기 때문에 continue문이 적용이 된다. 그렇게 되면 증감식이 적용이 안되어서 i의 값이 계속 3이 되어 버린다. 따라서 continue문을 사용할 때에는 무한 반복이 되지 않도록 주의해야 한다.

 

'프로그래밍 언어 > C언어' 카테고리의 다른 글

함수  (0) 2023.02.14
다중 반복문  (0) 2023.02.13
반복문(for문)  (0) 2023.02.11
반복문(while문)  (0) 2023.02.10
조건문(switch문)  (0) 2023.02.09
Comments