프로그래밍 언어/C

반복문(Loop)

gcreators 2024. 8. 9. 17:40

반복문은 특정한 조건에 맞게 반복 실행되는 것을 말한다

 

for, while, do~while 문이 있다.

 

for문

for(초기화; 비교문; 증감문;)
for 동작순서 -> 초기화 -> 비교문 -> 내용 -> 증감문)

	for (i = 5; i > 0; --i) 
		printf("%d ", i);
	//중괄호가 없으면 다음 한 줄만 반복됨
	printf("\n");

기본적으로 다음과 같은 구조를 가지고 있다.

for문에는 여러 특징이 있는데

for (i = 0, j = 2; i < 10; i += 3, ++j)
{
    printf("%d %d   ", i,j);

    if (j > 3)break;
}
printf("\n");

 

이렇게 초기화, 증감문을 여러개를 둘 수도 있고

	i = 0;
	for (;;) //초기화, 비교문, 증감문 셋다 생략이 가능하다
	{
		printf("%d ", i);
		++i;
		//탈출문(Escape)
		if (i >= 5) break;
	}
	printf("\n");

이렇게 초기화, 비교문, 증감문 모두 생략이 가능하다.

*단 이렇게 구성할 경우 무한 루프에 빠질 가능성이 있으니 조심해야 한다.

 

	for (i = 2; i < 10; ++i)
	{
		for (j = 1; j < 10; ++j) {
			printf("%d * %d = %d ", i, j, i * j);
		}
		printf("\n");
	}

다음과 같이 for문 안에 for문을 돌릴 수도 있다(이를 2중 for문 이라고 한다)

 

while문

while(조건) { 내용 }

i = 0;
printf("while: ");
while (i < 5) {
printf("%d ", ++i);
}
printf("\n");

조건식이 참 인동안 반복한다

* 0이면 돌아가지 않는다(거짓 false 이기 때문)

 

do~while문

do{ 내용 }

while(조건) { 내용 }

우선 1번 실행 후 조건을 검사함 반복이 되지 않더라도 1번은 실행이 된다.

i = 3;
do
{
	printf("do~while: %d\n", i);
	++i;
} while (i > 5);

 

번외편

반복문을 이용한 피라미드 만들기

 

*

**

***

****

다음과 같이 점차 증가하는 피라미드를 반복문을 통해 만들 수 있다.

그 외에도 여러 모양의 피라미드를 반복문을 잘 활용하면 만들 수 있는데

//변수 선언
int i=0;
int j=0;

for (i = 1; i < 6; ++i)
{
    for (j = 0; j < i; ++j)
    {
    //j가 i보다 작을때 * 문자를 찍음
        printf("*");
    }
    //j와 i가 같아졌을때 줄을 바꿈
    printf("\n");

}

기본적으론 이렇게 이중for문을 이용해서 만들지만

 

#include<stdio.h>

void main()
{
	//변수 선언
	int i = 0;
	int j = 1;


	for (i=0;j<5;)
	{
		//피라미드 모양 *
		printf("*");
		i++;
		// i와 j가 같을때 실행		
		if (i == j)
		{
			//j값을 1 올린 후 i를 0으로 초기화
			printf("\n");
			++j;
			i = 0;
		}
//1부터 시작하여 j의 숫자만큼 *을 찍고 다음 줄로 넘어가는 직각 삼각형 형태의 피라미드 코드 완성		
	}
}

이렇게 1개의 for문만을 활용해서 만들 수도 있긴하다

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

포인터(Pointer)  (0) 2024.08.13
배열(Array)  (0) 2024.08.12
조건문  (0) 2024.08.09
비교 연산자와 논리 연산자  (0) 2024.08.09
연산자(Operators) 와 형변환  (0) 2024.08.08