C 프로그래밍 언어에서 제어문(control statement)은 특정 문장 집합을 반복해서 실행해야 할 때 사용됩니다.
C 언어에서 제공하는 대표적인 반복문은 다음과 같습니다.
- for문
- while문
- do-while문
for문과 while문에서는 조건식이 루프가 실행될 횟수를 결정합니다.
for문 예제
for (k = 1; k<=5; k++)
위 코드에서 루프는 k가 5 이하일 때까지 실행되며, k가 5보다 커지는 순간 제어가 루프 밖으로 빠져나갑니다.
즉, for문의 조건식이 곧 루프의 실행 횟수를 지정하는 역할을 합니다. 위 예제에서는 루프가 총 5번 실행됩니다.
예제 코드
다음은 for문을 활용한 C 프로그램입니다.
main( ){
int k;
for (k = 1; k<=5; k++){
printf ("%d",k);
}
}
실행 결과
위 프로그램을 실행하면 다음과 같은 결과가 출력됩니다.
1 2 3 4 5
while문 예제
while (k< = 5)
마찬가지로 루프는 k가 5 이하일 때까지 실행되고, k가 5보다 커지면 루프를 벗어납니다.
따라서 while문 역시 조건식을 통해 루프의 실행 횟수를 지정합니다. 위 경우 루프는 5번 실행됩니다.
예제 코드
다음은 while문을 활용한 C 프로그램입니다.
main( ){
int k;
k = 1;
while (k<=5){
printf ("%d",k);
k++;
}
}
실행 결과
위 프로그램을 실행하면 다음과 같은 결과가 출력됩니다.
1 2 3 4 5
홀수 루프(Odd Loop)란?
프로그램을 작성하다 보면 루프가 몇 번 실행될지 미리 알 수 없는 경우가 있습니다. 이처럼 실행 횟수를 알 수 없는 상황에서 루프를 구현해야 할 때 필요한 개념이 바로 홀수 루프(odd loop)입니다.
홀수 루프는 for문, while문, do-while문 중 어떤 반복문을 사용하더라도 구현할 수 있습니다.
예제 코드
다음은 홀수 루프를 활용한 C 프로그램입니다. 사용자가 입력한 숫자가 짝수인지 홀수인지 판별한 뒤, 추가로 테스트할지 여부를 묻는 방식으로 동작합니다.
#include<stdio.h>
int main(){
int number;
number=1;
while(number==1) // 홀수 루프: 루프가 몇 번 실행될지 알 수 없음
{
printf("enter a number:\n");
scanf("%d",&number);
if((number%2)==0)
printf("number is even\n");
else
printf("number is odd\n");
printf("do you want to test any number\n");
printf("if yes then press '1'\n");// 1을 입력하면 루프가 다시 실행됨
printf("else press '0'\n");// 0을 입력하면 루프 종료
scanf("%d",&number);
}
return 0;
}
실행 결과
위 프로그램을 실행하면 다음과 같이 동작합니다.
enter a number: 3 number is odd do you want to test any number if yes then press '1' else press '0' 1 enter a number: 4 number is even do you want to test any number if yes then press '1' else press '0' 1 enter a number: 9 number is odd do you want to test any number if yes then press '1' else press '0' 0