首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >目标C "do - while“

目标C "do - while“
EN

Stack Overflow用户
提问于 2010-05-04 12:24:39
回答 1查看 4.9K关注 0票数 2

我正在阅读的这本书中的一个练习的示例显示了以下代码:

代码语言:javascript
复制
#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语句显示(input /= 10),如果我理解正确的话,这基本上意味着(input = input / 10)。现在,如果这是真的,为什么循环不继续运行呢?我的意思是,即使你用0除以10,也会得到一个数字。如果用户要输入"50607",它将首先切断"7",然后是"0",依此类推,但为什么要在移除"5“之后退出循环。对程序来说,"5“之后的响应不是和5和6之间的"0”相同吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-05-04 12:33:34

您似乎对/%之间的区别感到困惑。该循环除以input并使用商,而不是余数。对于您的50607示例,循环进行了5次迭代:

  1. input = 50607
  2. input = 5060
  3. input = 506
  4. input = 50
  5. input = 5

在最后一次迭代之后,input变为0,循环结束。

票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2762811

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档