在OC中,除了while这种循环方式外,还有另外for循环和do-while循环,它们在不同的业务逻辑下会有不同的作用。可以和C语言和Java对比着学习。
(一)代码一:
int main(int argc, const char * argv[]) {
@autoreleasepool {
for (int i = 0; i < 5; i++) {
NSLog(@"你好,i = %d",i);
}
}
return 0;
}
输出结果:
。
结果分析:for循环的循环变量放到了for()内部,for循环的单个变量分别是变量定义,变量范围,变量改变值。一般for循环用在循环次数已经清楚的条件下。输出结果符合我们的预期。
(二)代码二:
int main(int argc, const char * argv[]) {
@autoreleasepool {
int i = 0;
do{
i++;
NSLog(@"你好,i=%d",i);
}while (i<5);
}
return 0;
}
输出结果:
。
结果分析:do-while和其他循环的区别在于do-while是先进行一次循环内部的代码,然后再进行循环条件的判断。循环条件满足,然后再进行循环。 while循环和for循环都是先判断循环条件是否满足,若不满足就不执行循环代码了。do-while的循环若不满足,至少会执行一次循环体。这就是最大的区别。请看下一个代码:
(三)代码三:
int main(int argc, const char * argv[]) {
@autoreleasepool {
int i = 0;
do{
i++;
NSLog(@"你好,i=%d",i);
}while (false);
}
return 0;
}
输出结果:
。
结果分析:循环条件为false,但是也执行了一次循环体。可以根据业务需求进行选择循环类型。