loops aninhados em Objective-C
A linguagem de programação Objective-C permite usar um loop dentro de outro loop. A seção a seguir mostra alguns exemplos para ilustrar o conceito.
Sintaxe
A sintaxe para um nested for loop declaração em C é a seguinte -
for ( init; condition; increment ) {
for ( init; condition; increment ) {
statement(s);
}
statement(s);
}
A sintaxe para um nested while loop declaração na linguagem de programação Objective-C é a seguinte -
while(condition) {
while(condition) {
statement(s);
}
statement(s);
}
A sintaxe para um nested do...while loop declaração na linguagem de programação Objective-C é a seguinte -
do {
statement(s);
do {
statement(s);
} while( condition );
} while( condition );
Uma observação final sobre o aninhamento de loop é que você pode colocar qualquer tipo de loop dentro de qualquer outro tipo de loop. Por exemplo, um loop for pode estar dentro de um loop while ou vice-versa.
Exemplo
O programa a seguir usa um loop for aninhado para encontrar os números primos de 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 o código acima é compilado e executado, ele produz o seguinte resultado -
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