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일지

반복문(while문) 본문

프로그래밍 언어/C언어

반복문(while문)

세레프 2023. 2. 10. 04:35

 제어문이란 위에서 아래로, 왼쪽에서 오른쪽으로 실행하는 프로그램의 평범한 실행 흐름을 인위적으로 제어하는 문법이다.  제어문에는 조건문, 반복문, 분기문이 있으며, 조건문에는 if문, switch문, 반복문에는 while문, for문, 분기문에는 break문, continue문이 있다. 이 글에선 반복문중 하나인 while문에 대해서 알아볼 것이다.

 

 반복문 사용 이유

 반복문이란 반복되는 작업을 쉽게 처리하기 위해서 사용하는 문법으로, 조건의 결과에 따라 실행할 문장을 반복적으로 실행시키는 문법이다. 

 

 예를 들어보자, 만약 "C언어는 절차지향언어"라는 문장을 10번 출력한다고 하자. 그렇다면 해당 소스코드는 다음과 같다.

#include<stdio.h>

void main(){
	printf("C언어는 절차지향언어이다.");
	printf("C언어는 절차지향언어이다.");
	printf("C언어는 절차지향언어이다.");
	printf("C언어는 절차지향언어이다.");
	printf("C언어는 절차지향언어이다.");
	printf("C언어는 절차지향언어이다.");
	printf("C언어는 절차지향언어이다.");
	printf("C언어는 절차지향언어이다.");
	printf("C언어는 절차지향언어이다.");
	printf("C언어는 절차지향언어이다.");
}

 이렇게 작성을 하면 "C언어는 절차지향언어"라는 문장을 10번 출력이 된다. 하지만 10번이 아니라 100번이면 printf("C언어는 절차지향언어이다.")를 10번이 아니라 100번을 작성해야 한다. 그렇게 되면 번거로울 뿐만 아니라 소스코드가 길어진다. 그래서 우리는 반복적인 명령을 한 번에 처리하기 위해서 반복문을 사용하는 것이다.

#include<stdio.h>

void main(){
    int a=0;
    while(a<10){
    printf("C언어는 절차지향언어이다.\n");
    a++;
    }
}

위의 코드들의 출력 결과

반복문 - while문

 while문에는 조건식을 먼저 검사하고 조건식이 참(결과값: 1)인 동안 실행문을 반복하는 구조로, 형식과 순서도는 다음과 같다.

구조식 순서도
while(조건식){

조건이 참일때 반복할 명령 1;

}

명령 2

 순서도를 보면 "조건식이 참일때동안 중괄호안에 있는 명령을 반복한다."이다. 즉, 조건식이 참이면 계속해서 명령을 수행한다는 뜻이다.

#include<stdio.h>

void main() {
	int a=1;
	while (a=<10) {
		printf("while 반복문이 %d번 출력되었습니다.\n", a);
		a++;
	}
}

위의 소스코드 순서도

 위의 소스코드를 보면 a=<10일 동안 "while 반복문이 a번 출력되었습니다."를 출력하며, 증감식으로 변수 a값을 계속 변경하는 것을 볼 수 있다. 즉, a 값이 지속적으로 증가하다가, a = 10일때, while문이 종료가 되는 것이다.

 그렇다면 조건식이 "1(참)"일 경우에는 어떻게 될까? 명령 1이 계속 실행이 되는 데, 이를 무한 반복문이라고 한다. 이 무한 반복문에서 탈출하기 위해서는 명령 1 안에 조건문과 "break"를 사용하면 된다.

#include <stdio.h>

void main() {
	int a , b = 0;
	while (1) {//1:참
		printf("숫자입력:");
		scanf("%d", &a);
		b++;
		if (b == 10) {//무한반복을 종료하는 종료조건
			printf("프로그램 종료\n");
			break;
		}
	}
}

위의 소스코드 순서도

 위의 소스코드는 숫자입력을 10번하면, 프로그램이 종료를  출력하도록 코딩되어 있다. 만약 if문이 없다면, 해당 코드는 무한으로 코드가 실행될 것이다. 

 

 반복문 - do-while문

 do-while문은 while문과 달리, 반복할 문장을 수행한 후 조건을 검사한다. 즉 조건이 거짓이여도 1번은 실행한다는 뜻이다.

구조식
do{

    조건식이 참일때 반복할 명령 1;

} while(조건식)

명령 2

do-while문의 순서도

 순서도를 보면 while문처럼 조건식이 참일 동안에는 명령 1을 수행하는 것을 알 수 있다. 하지만 do-while문은 조건식이 뒤에 있기 때문에, 명령을 한번 실행하고 반복문이 진행되는 것을 알 수 있다.

#include<stdio.h>

void main() {
	int a = 1;
	do {
		printf("do-while문이 %d번 반복되었다\n", a);
		a++;
	} while (a <= 10);
}

위의 소스코드 순서도

 위의 소스코드 순서도를 보면 "do-while문이 a번 반복되었다"라는 문구가 출력되고, "a++"이 실행된 다음에, "a<=10"을 확인할 수 있다.

 그렇다면 변수 a에 11을 저장하면, 실행 결과는 어떻게 될까? "do-while문이 11번 반복되었다"가 출력이 되고 실행이 종료될 것이다.

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

분기문(break문, continue문)  (0) 2023.02.12
반복문(for문)  (0) 2023.02.11
조건문(switch문)  (0) 2023.02.09
조건문(if문)  (0) 2023.02.08
연산자(비트, 삼항, 기타 등등)  (0) 2023.02.07
Comments