c언어 독학 do~while
c언어 독학 do~while
■ 지난 글에서 while문에 대해서 정리해봤는데요. while문은 앞쪽에서 조건문을 검사해서 참이면 실행하고 거짓이면 실행하지 않는 형식인데요. 이번 글에서 알아볼 do~while문은 조건을 뒤쪽에서 검사한다는 차이점이 있습니다. 그렇기 때문에 최초 한 번은 무조건 실행하게 되며 형식은 다음과 같습니다.
do{
실행할 코드;
}while(조건문);
예제를 만들어서 확인해보겠습니다.
▲ 앞에서 알아본 형식대로 먼저 printf() 함수가 실행되고 문자열이 출력될 것입니다. 그리고 while문과 마찬가지로 반복문을 빠져나올 수 있도록 x++; 연산문을 입력하고 있습니다.
프로그램이 실행되면 x=0으로 초기화하고 printf()를 실행된 후 x를 증가시켜서 x=1이 됩니다. 다음은 조건을 비교하고 (1<3)은 '참'이기 때문에 다시 반복문을 실행하다가 x가 계속 증가해서 3이 되는 순간 (3<3)은 거짓이기 대문에 이 반복문을 빠져오게 되는 것입니다.
이처럼 while문과 do~while문은 상당히 비슷하고 while문이 앞에서 조건을 비교해서 실행 여부를 결정하기 때문에 더 자주 사용하게 되는데요. 그렇다면 do~while문은 언제 사용하는 게 좋을까요? 어떤 데이터를 입력받은 후에 조건을 비교할 때 유용하게 사용할 수 있을 겁니다. 예를 들어 성적을 입력하는 프로그램이 있다고 가정해볼게요. 점수는 0~100점 사이인데.... 1000점을 입력하면 안 되겠죠? 하지만 어떤 점수가 입력됐는지를 확인하기 위해서는 값을 먼저 입력해야 할 것입니다. 다음 예제에서 확인해볼게요.
▲ 점수를 입력받기 위해서 "국어 점수를 입력하세요"라는 메시지를 출력하고 있으며.... 값을 입력받아야 그 값이 조건(x>=0&&x<=100)을 만족하는지 따질 수 있기 때문에 먼저 값을 입력받는 코드를 실행해야 하는 것입니다. 입력한 점수가 조건을 만족한다면 계속해서 점수를 입력받을 거구요. 조건을 만족하지 못하면 "점수는 0부터 100사이만 입력해야 합니다." 라는 문자열이 출력되면서 프로그램이 종료될 것입니다. 실행해서 점수를 입력해보겠습니다.
▲ 점수를 입력하라는 문자열이 출력되며 점수를 0~100사이의 숫자를 입력하면 계속 반복해서 실행되며 조건을 벗어나는 숫자를 입력하면 0부터 100 사이를 입력하는 문자열의 출력과 함께 프로그램이 종료됩니다.
이처럼 do~while문은 먼저 어떤 데이터를 입력받은 후에 조건을 비교하는 경우에 유용하게 사용하는 제어문입니다. 수고하셨어요.