Objective C/조건문2010. 3. 27. 14:23
흔히 개발할 때 어떠한 값이나 상태에 의해 명령문을 선택적으로 실행하는 의사 결정이 필요하다. 적지만 내가 아는 모든 프로그래밍에서는 if문과 switch문을 사용한다. ObjC에서 역시 이 둘을 지원하고 사용법 또한 다른 것과 똑같다. 

1 if문을 사용하여 윤년인지를 알아내는 프로그램

//입력된 수가 홀수인지 작수인지를 구분

int num;

int remaind;

printf("Enter your the year : ");

scanf("%i",&num);

remaind = num%2;


int rem_4, rem_100, rem_400;

rem_4 = num%4;

rem_100 = num%100;

rem_400 = num%400;


if( ( rem_4 == 0 && rem_100 != 0 ) || rem_400 ==0 ){

NSLog(@"It's a leap year.");

}else{

NSLog(@"Nope, it's not a leap year.");

}


위 코드에서 보는 바와 같이 조건문의 표현식에서 우선권을 부여하기 위해서는 소괄호를 통해 연산시 우선권을 부여하고 AND연산(&&)과 OR연산(||)또한 형태와 사용법이 같다.

2 switch문을 사용하여 메서드 접근

double value1, value2;

char opertation;

BOOL isPrime; 


Calculator클래스는 사칙연산 메서드와 함께 값을 대입받아 메서드 getAccumulrator를 통해 반환한다.

Calculrator*myCalculrator = [[ Calculrator alloc ] init];


입력되는 값을 double형애 대입하기 위해 %lf로 받았다.

NSLog(@"Type in your expression.");

scanf("%lf %c %lf", &value1, &opertation, &value2);

가령 1+2를 입력하였을 때 1은 value1,+기호는 operation, 2는 value2에 대입한다.

isPrime = TRUE;

좌변의 값을 전달한다.

[ myCalculrator setAccumulrator:value1 ];


입력된 기호(+,-,*,/)에 따라 실행할 명령문을 선택한다.

switch (opertation) {

case '+':

[ myCalculrator add:value2 ];

break;

case '-':

[ myCalculrator subtract:value2 ];

break;

case '*':

[ myCalculrator multiply:value2 ];

break;

case '/':

if( value2 != 0){

[ myCalculrator divide:value2 ];

}else{

isPrime = FALSE;

}

break;

default:

isPrime = FALSE;

break;

}

if( isPrime ){

NSLog(@"result : %.2f", [ myCalculrator getAccumulrator ]);

}else{

NSLog(@"Unkown operation.");

}

[myCalculrator release];



Posted by 버터백통