cicli annidati in Objective-C

Il linguaggio di programmazione Objective-C consente di utilizzare un ciclo all'interno di un altro ciclo. La sezione seguente mostra alcuni esempi per illustrare il concetto.

Sintassi

La sintassi per a nested for loop l'affermazione in C è la seguente:

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

La sintassi per a nested while loop L'istruzione nel linguaggio di programmazione Objective-C è la seguente:

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

La sintassi per a nested do...while loop L'istruzione nel linguaggio di programmazione Objective-C è la seguente:

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

} while( condition );

Una nota finale sull'annidamento dei loop è che puoi inserire qualsiasi tipo di loop all'interno di qualsiasi altro tipo di loop. Ad esempio, un ciclo for può trovarsi all'interno di un ciclo while o viceversa.

Esempio

Il seguente programma utilizza un ciclo for annidato per trovare i numeri primi da 2 a 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;
}

Quando il codice precedente viene compilato ed eseguito, produce il seguente risultato:

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