Loops 循环

Objective-C 有一整套可供选择的循环方案,包括在 Swift 2.2 中被弃用的 C 语言风格的 for 循环。

让我们从最常见的循环类型开始,这一类被称为「快速枚举」:

NSArray *names = @[@"Laura", @"Janet", @"Kim"];
for (NSString *name in names) {
    NSLog(@"Hello, %@", name);
}

还记得我之前提过的 @ 符号在 Objective-C 使用频率之高吗?仅仅在上面这几行代码里,它就被用了6次。苹果真的简直了,好像把大部分盈利用来给开发者换 @ 键一样。(/= _ =)/~┴┴

这段代码先创建了一个存有姓名的数组,然后在循环里面,对数组里每个人打印了一句问候语。NSLog()的语法可能看起来特别奇怪,这是因为 Objective-C 没有字符串插值的功能。 NSLog()是一个可变函数,它把第一个参数中的字符串和别的值组合起来。 "%@" 被称为「格式说明符」,意思是「在这里插入对象的内容」。在我们的例子里,就是 name 变量。

你也可以使用 C 语言风格的 for 循环:

for (int i = 1; i <= 5; ++i) {
    NSLog(@"%d * %d is %d", i, i, i * i);
}

"%d" 是另一种格式说明符,表示 "int"。在这里我调用了三次,你可以更清楚地看到它们在字符串中被替换的过程:第一个 "%d" 匹配第一个 i ,第二个 "%d" 匹配第二个 i ,第三个 "%d" 匹配 i * i 的运算结果。

你也可以像在 Swift 里一样使用 do/while 语法,用法和 Swift 里的 repeat/while 相同。

与条件语句一样,如果循环体只包含一个语句,则可以从循环中省略大括号。但风险极大,请谨慎地使用它。

results matching ""

    No results matching ""