Processos de repetição se vêem necessários muito commumente na computação. Como um exemplo simples, de que modo você faria para calcular o factorial de um número? Tentar resolver este problema sem um laço de repetição provavelmente dará uma dor de cabeça enorme, pois não se sabe de antemão o tamanho do número a ser calculado o factorial, podendo ser preciso processar várias multiplicações.
Para isto, a linguagem C fornece 3 comandos de repetição que facilitam muito a solução destes problemas. São eles:
-> while
-> for
-> do - while
Pretendo mostrar para vocês esses comandos, um de cada vez.
Primeiramente veremos como funciona o while.
Pretendo mostrar para vocês esses comandos, um de cada vez.
Primeiramente veremos como funciona o while.
while ( expressão booleana )
{
"comandos a serem executados repetidamente";
expressão de incremento;
}
Considerações importantes:
-> Como no caso dos condicionais, não se usa " ; " depois do while;
-> A expressão booleana é do mesmo tipo da usada nos condicionais;
-> Enquanto a expressão booleana for verdadeira, os comandos dentro das chaves serão executados.
-> A expressão de incremento precisa sempre existir, caso contrário, uma vez executado o while ele entrará em loop infinito, já que a expressão booleana ficará sempre verdadeira.
Exemplo:
int main (void)
{
int i;
int n;
int f = 1; /* o fatorial do menor número não negativo é 1 */
printf("Digite um numero inteiro nao negativo:\n");
scanf("%d", &n);
i = 1;
/* calcula fatorial */
while ( i <= n )
{
f = f * i; /* aqui será feito f*1*2*3… */
i++; /* ou i = i + 1 se preferirem */
}
printf("Fatorial = %d \n",f);
return 0;
}
Fazendo o "chinês" com n = 3 por exemplo: O while será executado 3 vezes, já que i começa de 1 e é incrementado em 1 unidade. na primeira iteração temos f = 1 * 1, na segunda f = 1 * 2 e na terceira f = 2 * 3, resultado final 6.
Por André Calfa
E é isso aí!
Os dois próximos posts serão explicando o "for" e o "do while".
Atée o/
Por André Calfa
E é isso aí!
Os dois próximos posts serão explicando o "for" e o "do while".
Atée o/