while문을 이용하여 if문 대체하기
#include <stdio.h>
void make_five_if(int * ptr1, int * ptr2)
// 합이 5가 아닌 두 수를 입력받아 그 중 하나의 값을 초기화 하여 5가 되게 하는 함수. by if
{
if(*ptr1 + *ptr2 != 5)
{
*ptr1 -= (*ptr1 + *ptr2 - 5);
}
void make_seven_while(int * ptr1, int * ptr2)
// 합이 7이 아닌 두 수를 입력받아 그 중 하나의 값을 초기화 하여 7이 되게 하는 함수. by while
{
while(*ptr1 + *ptr2 != 7) // 조건(첫번째로 loop에 들어갔을때 조건만족 시 1회반복 후 break)
{
*ptr1 -= (*ptr1 + *ptr2 - 7);
break; // 반복문 강제 탈출
}
}
int main()
{
int first,second;
printf("두 정수를 입력하시오 : ");
scanf("%d %d", &first, &second);
printf("\n\n\"if\"를 이용한 결과 : "); // make_five_if 함수 호출
make_five_if(&first, &second);
printf("first + second = %d\n", first + second);
printf("\"while\"을 이용한 결과 : "); // make_seven_while 함수 호출
make_seven_while(&first, &second);
printf("first + second = %d", first + second);
return 0;
}
물론 if함수를 쓸 수 없는 컴파일러, 환경은 없겠지만 사고의 전환이 이뤄짐에 있어 긍정적인 문제였다. 또한 while문 구조에 대한 관찰과 break함수의 이해로 이들 실전 사용에 자신이 생겼다.