2
내가 읽고있다 책에서 운동의 하나의 예는 다음과 같은 코드를 보여줍니다목적 C는 "할 - 동안"
이#import <Foundation/Foundation.h>
int main (int argc, const char * argv[]) {
NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
int input, reverse, numberOfDigits;
reverse = 0;
numberOfDigits = 0;
NSLog (@"Please input a multi-digit number:");
scanf ("%i", &input);
if (input < 0) {
input = -input;
NSLog (@"Minus");
}
do {
reverse = reverse * 10 + input % 10;
numberOfDigits++;
} while (input /= 10);
do {
switch (reverse % 10) {
case 0:
NSLog (@"Zero");
break;
case 1:
NSLog (@"One");
break;
case 2:
NSLog (@"Two");
break;
case 3:
NSLog (@"Three");
break;
case 4:
NSLog (@"Four");
break;
case 5:
NSLog (@"Five");
break;
case 6:
NSLog (@"Six");
break;
case 7:
NSLog (@"Seven");
break;
case 8:
NSLog (@"Eight");
break;
case 9:
NSLog (@"Nine");
break;
}
numberOfDigits--;
} while (reverse /= 10);
while (numberOfDigits--) {
NSLog (@"Zero");
}
[pool drain];
return 0;
}
내 질문이 인을, while 문 쇼 (입력/= 10) 이것은 내가 올바르게 이해한다면 기본적으로 (input = input/10)을 의미합니다. 이제 이것이 사실이라면 왜 루프가 계속해서 실행되지 않는 것입니까? 0을 10으로 나누더라도 여전히 숫자를 추출합니다. 사용자가 "50607"을 입력했다면, "7", "0"등등을 먼저 차단하지만, "5"를 제거한 후 루프를 빠져 나오는 이유는 무엇입니까? "5"이후의 응답은 5와 6 사이의 "0"과 동일하지 않습니까?