请解释Objective-C中的break和continue。

7

首先请原谅我这个新手的问题。我正在学习Objective C,对编程本身也非常陌生。

你们能否解释一下循环中break和continue语句的作用?

例如,以下两段代码有何不同?

 for (int i=0; i<100; i++) {
      if ([self okToProceed]) {
         [self doSomething];
      } else {
         break;
      }
  }

并且

  for (int i=0; i<100; i++) {
      if ([self okToProceed]) {
         [self doSomething];
      } else {
         continue;
      }
  }

第一段代码会在第一次okToProceed返回false时停止循环,而第二个循环会继续运行,但在okToProceed为false时不执行任何操作。

4
请注意,“break”和“continue”是C编程语言的关键字,Objective-C是基于它开发的。学习C语言会对你的Objective-C编程有很大帮助。 - Martin R
2个回答

24

break语句可以退出循环,它可以视为创建循环退出条件的一种方式。

例如,在代码中:for(int i=0; i<100; i++)i<100是一个循环条件。
即,如果不满足这个条件,循环将退出。

同样,在if内部,如果有类似于if(i == 34) { break; }的代码。
i的值达到34时,即使指定的循环退出条件是i<100,循环也会退出。


continue语句用于跳过下一个循环周期。
这个语句基本上是用来避免运行循环中其余的代码。

例子:

for(i=0; i<5; i++) {
   if(i == 3) {
      continue;
   }
   print(i);
}

这个循环将打印0 1 2 4
i等于3时,continue将跳过当前循环迭代和continue之后的语句(即print(i);不会执行)。
当然,在循环运行之前,要先检查循环条件。


1
breakcontinue本质上都是一种goto形式。在嵌套循环中,可以使用goto来中断或继续父循环。 - Sulthan

8

break会完全退出循环,continue只会跳过当前的迭代并继续下一次。

例如,在你的循环中,假设i等于50,并且你使用break,那么循环将会退出,但是如果你使用continue,它将会跳过这次迭代并开始下一个迭代 - i将会等于51。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接