본문 바로가기
프로그래밍

[중첩반복문] for문, while문, do-while문_쉬운 설명과 예시_쉼표연산자,break문,continue문

by 스텔라게이트 2023. 3. 11.

[중첩반복문] for문 if else를 활용한 다양한 경우 

쉬운 설명과 예시에 대하여 얘기해 보겠습니다. 

1. 횟수가 달라지는 반복문 

1. 횟수가 달라지는 반복문
1. 횟수가 달라지는 반복문

int main(void) { 
int i,j;

for(i=0;i<4;i++)
	{ 
	for(j=0;j<4;j++)
		{
		if(i>=j)
        {
		printf("*");
		}
        else
        {
		printf(" ");
		}
		
		}
	printf("\n");
	}
	
 }

기본적인 원리를 다시 한번 이해하기 위해 별(*)이 5개씩 5줄 반복되는 반복문에 대하여 다시 생각해 봅시다

반응형

 i는 출력할 줄의 개수, j는 한 줄에 출력할 글자의 개수 입니다. 

횟수가 달라지는 반복문 다른방법
횟수가 달라지는 반복문 다른방법

int main(void) { 
int i,j;

for(i=0;i<5;i++)
	{ 
	for(j=0;j<=i;j++)
		{
	
			printf("*");
			
		}
	printf("\n");
	}
	
 }

2. 횟수가 달라지는 반복문 

2. 횟수가 달라지는 반복문
2. 횟수가 달라지는 반복문

그럼 위의 그림 또한 같은 방법으로 응용이 가능할 것입니다.

int main(void) { 
int i,j;
for(i=0;i<4;i++)
	{ 
	for(j=0;j<4-i;j++)
		{
			printf("*");	
		}
	printf("\n");
	}
	
 }

do-while문 

do-while문은 쓰이는 빈도가 가장 낮은 반복문 

조건 검사 시점이 while이나 for와는 다름 

 

초기화;
do
{
 반복되는 작업 ... 
 증감연사니 
 }while(조건);

while 다음에 있는 조건을 만족하는 동안 do부터 while 사이에 있는 { }를 반복하는 것입니다. 

while문과 for문  비교 

while문과 for문 비교
while문과 for문  비교

  1. while문과 for문은 화살표와 같이 첫 반복을 하기 전 조건을 검사합니다. 
  2. 그리고 조건이 맞지 않는다면 반복을 한번 도 하지 않을 수 있습니다. 

반응형

do-while문 설명

do-while문 설명
do-while문 설명

  1. do-while문은 첫 번째 반복은 무조건 실행하고 그다음에 조건을 검사합니다. 
  2. 조건이 맞는다면, 다시 위로 올라가서 반복작업을 하고 
  3. 조건이 맞지 않는다면, 첫번째 반복문만 이뤄진 상태에서 끝이 납니다. 

가장 중요한 점은 첫 번째 반복되는 작업은 무조건 실행하고 그 다음에 조건 검사를 한다는 점입니다. 

 

반복문 사용처

  • for문 : 일정하게 증감하는 반복문 
  • while문 : 일정한 증감 없이 다른 종류의 조건에 의해 결정되는 반복문             
                   (scanf를 통해 입력받는 수에 의해 반복문 종료 결정) 
  • do-while문 : 특별히 필요할 때를 제외하곤 잘 안 쓰임 

쉼표연산자 

여러 문장을 하나의 문장으로 적을 때 사용 

sum = 0;     >>>     sum = 0, i = 1;

i = 1; 

위와 같이 쉼표를 사용하여 하나의 문장으로 적을 수 있으며, 왼쪽부터 실행됩니다.

아래와 같이 for문에 쉼표연산자를 사용하여 한 문장으로 정리가 가능합니다. 

쉼표연산자
쉼표연산자

break문 

반응형

반복 작업을 하다가 break를 만나면 반복문을 종료시키는 명령어 

#include <stdio.h>

int main(void) { 
int i,a;

scanf_s("%d", &a);

for(i=2;i<a;i++)
	{ 
	if(a%i == 0) #### a를i로 나눈 나머지가 0 (i가 a의 약수)이면 break
		{
			break;
		}
	printf("%d \n",i);
	}
 }

하여 35를 입력하게 된다면, 2,3,4까지 출력된다 5의 경우 35의 약수이므로 break 되어 버림 

 

Continue문 

Continue문
Continue문
Continue문 실행
Continue문 실행

break문의 경우 2,3,4 까지만 출력되고 break 되었지만 

continue문의 경우 35의 약수인 5,7에서 printf가 skip 되면서 나머지 수가 모두 출력되는 결과를 보실 수 있습니다. 

 

  • 즉 continue문은 정수를 입력받은 뒤, 그 수의 약수를 제외한 수들을 출력하는 프로그램입니다. 

그리고 countinue문은 조건문의 배치만 바꾸면 사용하지 않을 수 있는데요. 

아래와 같이 a% i!=0 즉 a를 i로 나누었을 때 0이 아니라면 출력하라 라는 조건을 걸면 사용을 하지 않아도 됩니다. 

 

int main(void) { 
int i,a;
scanf_s("%d", &a);
for(i=2;i<a;i++)
	{ 
	if(a%i != 0) ##### a를i로 나눴을 때 0이 아니라면 출력하라
		{
		printf("%d \n",i);
		}
	}
 }

Countinue문 사용 이유

그렇다면, 왜 countinue문을 사용하느냐? 그것은 바로 프로그램이 좀 더 간결해지고 이해가 쉬워지기 때문입니다.

위처럼 프로그램이 아주 간결할 때에는 상단의 조건을 쉽게 바꾸어 정리할 수 있지만, 복잡한 조건일 경우에는 countinue문을 사용하여 쉽게 정리하는 것입니다. 

 

Countinue문 주의사항 

continue문을 사용할 때 되도록 for문에서 사용하며 while문을 사용할 때는 아래 그림과 같이 printf만 넘어가는 것이 아니라 조건인 i++; 까지 넘어가게 되므로 문제가 발생될 수 있습니다. 

Countinue문 주의사항
Countinue문 주의사항

이상으로 [중첩반복문] for문, while문, do-while문_쉬운 설명과 예시_쉼표연산자, break문, continue문에 대한 리뷰였습니다.

읽어주셔서 감사합니다. 

반응형

댓글