본문 바로가기

공부/C언어

(C 예제) continue 정리 및 예제

continue 왜캐 헷갈리냐..

1부터 30 사이의 3의 배수, 4의 배수가 아닌 숫자 출력하기

// continue 예제1
void main(void)
{
	int num;

	for (num = 1; num <= 30; num++)
	{
		if (num % 3 == 0 || num % 4 == 0)
		{
			continue;
		}
		printf("%d\n", num);
	}
}

for문에서 num이 1부터 30까지 증가하면서 30번 반복한다.

if문에서 num을 3으로 나누었을 때 나머지가 0 || num을 4로 나누었을 때 나머지가 0일 때,

실행을 멈추고 건너뛴다.

 

다시 풀어쓰면, num을 3으로 나누었을 때 나머지가 0인 경우와
num을 4로 나누었을 때 나머지가 0인 경우 둘 중 하나라도 참이면

printf를 이용해서 num의 값을 실행한다.

즉, num이 3과 4로 나뉘어졌을 때 나머지가 0이 아닌 경우(3의 배수와 4의 배수가 아닌 경우)
printf가 실행되고 숫자가 출력된다.

 

break는 무조건 반복문을 빠져나가지만, continue를 만나면 일단 그만두고 조건을 확인하러,

다시 거슬러 올라간다.


continue를 사용하지 않으면, 아래와 같이 짤 수 있다.

// continue를 사용하지 않은 경우
void main(void)
{
	int num;

	for (num = 1; num <= 30; num++)
	{
		if (num % 3 != 0 && num % 4 != 0)
		{
			printf("%d\n", num);
		}
	}
}

반복하면서 조건에 충족되지 않은(3과 4의 배수가 아닌) 숫자들이

printf로 출력된다.

 

* 논리 연산자

연산자 설명
&& 논리곱(AND), 양쪽 모두 참일 때 참
|| 논리합(OR), 양쪽 중 하나만 참이라도 참
! 논리 부정(NOT), 참일 때 거짓/거짓일 때 참