“for”循环中的“If”语句

mak*_*aed 2 for-loop if-statement objective-c

在下面的 Objective-C 代码中,当第一个内部“if”语句得到满足(真)时,这是否意味着循环终止并转到下一个语句?

还有,当它执行一次后返回到内部的'for'语句时,p的值又是2,为什么?

// Program to generate a table of prime numbers

#import <Foundation/Foundation.h>

int main (int argc, char *argv[])
{
   NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];

   int p, d, isPrime;

   for ( p = 2; p <= 50; ++p ) {
       isPrime = 1;

       for ( d = 2; d < p; ++d )
            if (p % d == 0)
                isPrime = 0;

       if ( isPrime != 0 )
           NSLog (@”%i ", p);
 }

 [pool drain];
 return 0;
}
Run Code Online (Sandbox Code Playgroud)

提前致谢。

dav*_*ode 5

循环不会终止,直到以下情况之一发生:

  1. 遇到
  2. 一个例外是引发
  3. 一个休息遇到声明
  4. 循环条件评估为假

附:使用花括号,否则你的代码将无法阅读/调试/维护