Esse tópico trata do laço for.
Como visto, a forma geral desse laço é:
for
for(variavel = valor_inicial; condicao_envolvendo_variavel; incremento/decremento de variavel)
{
comandos...
}
Vamos vê-lo na prática:
001: #include <stdio.h>
002: #include <stdlib.h>
003:
004: int main(int argc, char * argv[])
005: {
006: int i;
007:
008: for(i = 0; i < 10; i++)
009: {
010: printf("%d\n", i);
011: }
012: system("PAUSE");
013: return 0;
014: }
O exemplo, embora simples, ilustra que o início do for é bem definido, bem como seu fim. Note que a variável i inicia com 0 e termina com 10.
Quando estou em sala de aula sempre pergunto quantas vezes o for será executado. A resposta é 10 vezes, com i variando de 0 a 9 (i < 10).
Se não confia em mim, execute o código acima e verifique as impressões do valor de i. Deverá aparecer 0, 1, ..., 9.
Outra pergunta que costumo fazer é qual o valor de i após a execução do laço for, em outras palavras, se imprimisse o valor de i na linha 012, o que seria impresso? A resposta correta é 10, lembre-se que existe uma condição para o for ser abandonado (i < 10). Quando i valer 10, o laço termina a sua execução.
Agora vamos ao exemplo prático. Vamos calcular o fatorial de um número inteiro.
001: #include <stdio.h>
002: #include <stdlib.h>
003:
004: int main(int argc, char *argv[])
005: {
006: int fat = 1, n, i;
007:
008: printf("Digite o numero: ");
009: fflush(stdin); scanf("%d", &n);
010:
011: if (n < 0)
012: {
013: printf("Nao existe fatorial de numero negativo.\n");
014: }
015: else
016: {
017: for(i = n; i > 1; i--)
018: {
019: fat *= i;
020: }
021: printf("%d! = %d\n", n, fat);
022: }
023: system("PAUSE");
024: return 0;
025: }
Verifique o início e o fim do laço, novamente bem definidos! Inicia em n e termina em 1.
A linguagem C permite que você altere, dentro do laço, os valores da variável de controle (i). Essa não é uma prática recomendável porque esse laço perde sua característica de executar um número determinado de vezes. Se você alterar os valores da variável de controle, não poderá garantir quantas vezes o laço será executado.
2 comentários:
Grane Guiera,
Uma dica se possível você poderia colocar uma sessão de dúvidas.
Ai o número de visitas pelas respostas seria mais frequente.
Muito bom o blog!!!
Postar um comentário