第三章:ObjectC循环

5、程序循环
一个Object-C项目,你能够不断重复执行一段代码用相同的方式。本章讲循环的功能。
for循环、while循环、do循环。
下面我们将要开始一个简单的例子:来计算数字。
#import
int main(int argc,char *argv[])
{
    @autoreleasepool{
    int triangularNumber;
    triangularNumber = 1+2+3+4+5+6+7+8;
    NSLog(@"The eighth triangular number is %i",triangularNumber);
    }
    return 0;
}
这个数字的和是36,现在这仅仅有几个数字。如果你需要一个200th的数字,那该怎么办呢,他将是枯燥乏味的从1加到200.幸运的是这里有种简单的方式。
这个for状态
让我们来用for转台。这个程序将要计算200th的数字。
#import
int main(int argc,char* argv[])
{
    @autoreleasepool{
    int n,triangularNumber;
    triangularNumber = 0;
    for(n = 1;n<=200;n++)
    triangularNumber += n;

    NSLog(@“The 200th triangular number is %i”,triangularNumber);
    }
    return 0;
}
for(inin_expression;loop_condition;loop_expression)
    program statement;
*键盘输入
计算这个200th数字,可有去计算一个设定的值。你能够处理这个问题用scanf。这个scanf程序相似于这个NSLog的概念。因此这个NSLog周期可以展示一个值,当然你可以用OC程序写一个图形接口,例如Cocoa或者是IOS应用,你可能不会用到NSLog或者scanf在你的程序中。
#import
int main(int argc,char* argv[])
{
    @autoreleasepool{
    int n,number,triangularNumber;
    NSLog(@"what triangular number do you want?");
    scanf("%i",&number);
    triangularNumber = 0;
    for(n = 1;n<=number;++n)
    triangularNumber += n;
    NSLog(@"Triangular number %i is %i\n",number,triangularNumber);
    }
    return 0;
}
*对于loops程序
使用一个灵活的程序来计算这个数字。
#import
int main(int agrc,char *argc[])
{
    @autoreleasepool{
    int n,number,triangularNumber,counter;
    for(counter = 1;counter<=5;++counter)
    {
        NSLog(@"what triangular number do you want?");
        scanf("%i",&number);
        triangularNumber = 0;
        for(n =1;n<=number;++n)
        triangularNumber += n;
        NSLog(@"Triangular number %i is %i\n",number,triangularNumber);
        }
    }
    return 0;
}
*这个while状态
这个while状态将要扩展一个Object-C语言。请看下面的例子:
#import
int main(int argc,char* argv[])
{
    @autoreleasepool{
    int count = 1;
    while(count<=5)
    {
        NSLog(@"%i",count);
        ++count;
    }
    }
    return 0;
}
我们再看一个程序
#import
int main(int argc,char* argv[])
{
    @autoreleasepool{
    unsigned int u,v,temp;
    NSLog(@"please type in two nonnegative integers.");
    scanf("%u%u",&u,&v);

    while(v != 0)
    {
        temp = u%v;    
        u = v;
        v = temp;
    }    
        NSLog(@"their greatest common divisor is %u",u);
    }
    return 0;
}

*另一种do状态
这两个循环结构在本章中测试这个循环的执行。如果这个判断是不对的,那么循环本体不将要执行。OC语言将要提供一种体别的语言来处理这种情景,了解这个do状态。请看下下面的程序:
#import
int main(int argc,char*argv[])
{
    @autoreleasepool{
    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);
    }
    return 0;
}

你可能感兴趣的:(Object-C)