Language/C

[ C ] 반복문 & 분기문

곽수진 2021. 10. 12. 03:27
반응형

반복문

조건이 만족하는 동안 주어진 문장을 반복해서 수행

루프(loop)라고도 불림

 

 

  • for

    : 정해진 횟수만큼 반복 수행할 때 주로 사용됨

      → 초기식, 조건식, 증감식과 반복할 문장으로 구성됨

      → 반복할 문장이 여러 개일 때는 { }(중괄호)로 묶어줌

      → 초기식을 수행한 다음에 조건식을 검사함

      → 조건식이 참이면 반복할 문장을 수행하고 나서 증감식을 수행

 

for (초기식; 조건식; 증감식){
    명령문1;
    명령문2;
    ...
}

 

초기식 : 반복을 시작할 때의 처음 값을 지정하는 식

조건식 : 반복의 실행여부를 결정하는 식

증감식( = 변화식 ) : 초기식에서 출발한 값이 조건식의 마지막 값에 다가가도록 만들어 결국 조건을 거짓(= 반복 종료)으로 만들어 주는 식

 

 

for (초기식1; 조건식1; 증감식1){
    for (초기식2; 조건식2; 증감식2)
        명령문2;
    명령문1;
}

 

▶ 중첨된 for에서 바깥쪽 for가 N번, 안쪽 for가 M번 반복 수행하는 경우 전체 반복 횟수는 M*N

 

 

★ 루프 제어 변수 ★

- 루프 제어 변수의 값은 for의 반복 회차마다 변경되어야 함

- 특정 시점에는 조건식이 거짓이 되어 루프를 탈출할 수 있어야 함

 

 

int i, j;
for (i=0, j=100; i<10 && j>0; i+, j/=2)
    printf("i=%d, j=%d \n", i, j);

 

,연산자를 이용해 루프 제어 변수를 여러개 사용 가능

 

 

▶ for문을 구성하는 초기식, 조건식, 증감식과 반복할 문장은 모두 생략 가능

 

- for문 초기식 생략

for (; i<5; i++)
    printf("%d ", i);

 

- for문 조건식 생략 ( = 무한 루프 )

for (i=0; ; i++)
    printf("%d ", i);

 

- for문 증감식 생략

for (i=0; i<5; )
    printf("%d ", i++);

 

- for문 반복할 문장 생략 ( = 널 문장 )

for (i=0; i<5; )
    ;

 

- for문 초기식, 조건식, 증감식 생략 ( = 무한 루프 )

for ( ; ; )
    printf("%d ", i);

 

 

  • while

    : 반복의 횟수나 범위가 명확하지 않고 조건만 명시된 경우 활용도가 높음

 

while(조건식){
    명령문;
    증감식;
}

 

 

★ for문과 while문의 변화 ★

for (i=0; i<5; i++)
    printf("%d ", i);

 

▶ i가 0부터 4까지 1씩 커지며 그 값을 출력 하는 반복문

 

 

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

 

▶ 위에서 작성한 for 반복문을 while문으로 표현 가능

 

 

  • do while

    : 반복할 문장을 먼저 수행한 다음, 반복문의 끝부분에서 조건식을 검사해서 루프를 탈출할지 결정

 

do{
    명령문;
} while(조건식);

 

▶ 조건을 while 뒤에 기재하고 ;를 붙임

▶ 일반적으로 중괄호를 붙인 형식으로 사용

▶ 조건이 거짓이라도 명령을 최소 한번은 반복

    → 다른 반복문과의 차이점

 

 

Ex.

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>

int main(void) {

	int x;

	printf("정수? ");
	scanf("%d", &x);

	do {
		printf("%d ", x);
		x /= 2;
	} while (x > 0);
	printf("\n");

	return 0;
}

▶ 사용자에게 입력받은 정수가 0보다 클 때까지 계속 2로 나눈 후 몫을 출력

 

 

출력 결과 모습

 

 


 

 

분기문 ( = 이동문 )

- 문장의 실행 순서를 변경할 수 있음

- break와 continue는 반복문과 함께 사용되어 반복문의 수행 순서를 변경

 

  • break

      : 반복 내부에서 반복을 종료하기 위해 사용

      : 가장 가까운 위치의 반복문 하나를 탈출해 반복 종료

      : 루프의 시작이나 끝부분이 아닌 위치에서 루프를 탈출하기 위해 무한루프와 break를 사용

 

  • continue

      : 반복 몸체의 나머지 부분을 실행하지 않고 다음 반복을 계속 유지하기 위해 사용

      : for문에서는 증감식으로, while / do문에서는 조건식으로 이동

 

  • return

      : 함수를 호출한 곳으로 되돌아가게 만듦

      : main 함수 안에서 return문을 만나면 main 함수가 return 되면서 프로그램이 종료

      : return값이 있는 함수에서는 return 다음에 값을 써주고, return 값이 없는 함수에서는 return만 써줌

반응형