'do while'에 해당되는 글 1건

  1. 2010.03.15 반복문
Objective C/반복문2010. 3. 15. 16:06
Objc에서 역시 반복문이나 조건문등 사용법이 전혀 다르지 않다. 다들 알고 있을 것이고 많이 사용되므로 printf와 scanf를 사용하여 대화형 코드 테스트한 것을 포스팅 해보려고 한다.

[ For문의 일반적인 형태 ]

int n, number, triangularNumber;

printf("what triangular number do you want?\n")

scanf("%i", &number);

triangularNumber = 0;

for( n=1; n<=number; n++ ){

triangularNumber += n;

}

NSLog(@"Triangular Number %i is %i\n", number, triangularNumber);


위의 코드는 숫자가 입력된 범위만큼 삼각수를 얻는 코드이다. 가장 일반적인 형태를 사용했고 기타 형태는 따로 언급하지 않겠다. 그리고 알다시피 콘솔창에 어떠한 내용을 프린트하기위해 C에서는 printf()를 사용한다. 하지만 맥에서는 콘솔 출력되는 것의 가독성이 매우 떨어진다. 각 새로운 문장의 라인이 그대로 이어져 나오기 때문에 매번 \n을 이용하여 줄바꿈을 해주어야 한다. 하지만 NSLog()의 경우는 자동으로 줄바꿈 처리를 하여 가독성을 높였다.
ObjC에서도 콘솔에서 입력되는 문자를 읽어오기위해서는 scanf()를 사용한다. 필요한 변수 앞에 &부호를 붙여 입력된 값을 대입받는다.

[ While문의 형태 ]

int number, right_digit;

NSLog(@"Enter your number :");

scanf("%i", &number);

while (number != 0) {

right_digit = number%10;

NSLog(@"%i",right_digit);

number /= 10;

}


위의 코드는 입력받은 수의 자리수를 뒤집는 코드이다. 보통 While문은 반복의 범위가 정해지지 않을때 사용한다.

[ do While문의 형태 ]

int number, right_digit;

NSLog(@"Enter your number.");

scanf("%i", &number);

do{

right_digit = number%10;

NSLog(@"%i", right_digit);

number /= 10;

}while( number != 0 );

do while문 또한 그냥 while문과 똑같다 다만 반복문의 조건식에 해당되지 않는 경우나 한번 쯤 실행하여 값을 반영하고자 할 때 사용된다. 개인적으로는 자주 쓰지 않는다.. 

* scanf를 사용하려면 Xcode에서 제공하는 콘솔을 사용하여야 한다.

Posted by 버터백통