C언어 While문

지환·2022년 1월 2일
0

C언어

목록 보기
9/37
post-thumbnail

while문 기본 구조

  • 반복문의 또 다른 종류로 while 반복문이 있다. for 반복문은 정규화된 형식을 갖고 있다면, while 반복무은 '종결 조건'만 형식으로 갖고 있다.

  • while 반복문은 '종결 조건'이 거짓이 될 때까지 명령문을 반복한다.
    for과 마찬가지로 단일 문장과 복합 문장을 사용할 수 있다.

  • while 반복문의 형식을 보면, '종결 조건'만 보인다. 이것은 '시작 조건'과 '조건 변화 수식'을 전혀 사용할 수 없다는 뜻이 아니라, 사용하고 싶은 위치나 작업 순서에 맞게 적절하게 배치 가능하다는 뜻이다.

  • 다음 예제를 보자.

#include <stdio.h>


int main()
{
	int sum = 0;
	int num = 1; //시작조건
	while (num <= 5) //종결조건
	{
		printf("num(%d) + sum(%d)= ", num, sum);
		sum = sum + num;
		printf("%d\n", sum); //num + sum = 1 << 이 부분을 의미.
		num++; //조건 변화 수식
	}
	printf("\n result : num = %d sum = %d\n", num, sum);


}

<결과>

  • 반복문을 지속적으로 사용하다보면 for문을 사용할 때, while문을 사용할 때 어느 것이 더 편할까 생각이 든다.
  • 필자는 반복의 3요소가 정해져 있다면, for반복문을 사용하는 것이 더 편하고, 조건 변화 수식이나 시작 조건이 다양하다면, while문을 사용하는 것을 추천한다.

while문 무한루프 만들기.

  • while 반복문에서 '종결 조건'을 생략할 수 없기 때문에 괄호 안에 어떤 상수 값이나 수식을 반드시 적어야한다.
  • for문에서 for문 무한루프인 for(; ;)부분이 while(1)과 같다.

do while문

  • do~while문은 while문과 비슷하지만 '종결 조건'을 명령문을 실행하기 전이 아니라 후에 체크한다.

  • do~while문의 장점은 '종결 조건'이 거짓인 상황에도 명령문을 한 번은 수행하고 종료할 수 있다.

  • 앞서 한 예제를 do~while문으로 바꿔보자.

#include <stdio.h>

int main()
{

	int sum = 0;
	int num = 1; // 시작조건
	do
	{
		printf("num(%d) + sum(%d) = ", num, sum); //합산하기 전, sum값을 이용하여, "num + sum = " " 이라고 출력한다.
		sum = sum + num;
		printf("%d\n", sum);
		num++; //조건 변화 수식
	} while (num <= 5); // 종결 조건
	printf("\n Result : num = %d sum = %d\n", num, sum);

}

<결과>

<출처 : DO IT C언어 - 김성엽>

profile
아는만큼보인다.

0개의 댓글