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」相同?