Objective-c-nested-loops

提供:Dev Guides
移動先:案内検索

Objective-Cのネストされたループ

Objective-Cプログラミング言語では、1つのループを別のループ内で使用できます。 次のセクションでは、概念を説明するためのいくつかの例を示します。

構文

Cの*ネストされたループ*ステートメントの構文は次のとおりです-

for ( init; condition; increment ) {
   for ( init; condition; increment ) {
      statement(s);
   }
   statement(s);
}

Objective-Cプログラミング言語の nested while loop ステートメントの構文は次のとおりです-

while(condition) {
   while(condition) {
      statement(s);
   }
   statement(s);
}

Objective-Cプログラミング言語の nested do …​ while loop ステートメントの構文は次のとおりです-

do {
   statement(s);
   do {
      statement(s);
   } while( condition );

} while( condition );

ループの入れ子に関する最後の注意点は、他の種類のループの中に任意の種類のループを配置できることです。 たとえば、forループはwhileループ内に配置することも、その逆にすることもできます。

次のプログラムは、ネストされたforループを使用して、2から100までの素数を見つけます-

#import <Foundation/Foundation.h>

int main () {

  /*local variable definition*/
   int i, j;

   for(i=2; i<100; i++) {
      for(j=2; j <= (i/j); j++)
        if(!(i%j)) break;       //if factor found, not prime
      if(j > (i/j)) NSLog(@"%d is prime\n", i);
   }

   return 0;
}

上記のコードをコンパイルして実行すると、次の結果が生成されます-

2013-09-07 22:40:01.004 demo[1027] 2 is prime
2013-09-07 22:40:01.005 demo[1027] 3 is prime
2013-09-07 22:40:01.005 demo[1027] 5 is prime
2013-09-07 22:40:01.005 demo[1027] 7 is prime
2013-09-07 22:40:01.005 demo[1027] 11 is prime
2013-09-07 22:40:01.005 demo[1027] 13 is prime
2013-09-07 22:40:01.005 demo[1027] 17 is prime
2013-09-07 22:40:01.005 demo[1027] 19 is prime
2013-09-07 22:40:01.005 demo[1027] 23 is prime
2013-09-07 22:40:01.005 demo[1027] 29 is prime
2013-09-07 22:40:01.005 demo[1027] 31 is prime
2013-09-07 22:40:01.005 demo[1027] 37 is prime
2013-09-07 22:40:01.005 demo[1027] 41 is prime
2013-09-07 22:40:01.005 demo[1027] 43 is prime
2013-09-07 22:40:01.005 demo[1027] 47 is prime
2013-09-07 22:40:01.005 demo[1027] 53 is prime
2013-09-07 22:40:01.005 demo[1027] 59 is prime
2013-09-07 22:40:01.005 demo[1027] 61 is prime
2013-09-07 22:40:01.005 demo[1027] 67 is prime
2013-09-07 22:40:01.005 demo[1027] 71 is prime
2013-09-07 22:40:01.005 demo[1027] 73 is prime
2013-09-07 22:40:01.005 demo[1027] 79 is prime
2013-09-07 22:40:01.005 demo[1027] 83 is prime
2013-09-07 22:40:01.005 demo[1027] 89 is prime
2013-09-07 22:40:01.005 demo[1027] 97 is prime