Computer >> 컴퓨터 >  >> 프로그래밍 >> C 프로그래밍

C 언어에서 홀수 루프(odd loop)란 무엇일까? 개념과 예제 총정리


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