Pesquisar no blog:

Mostrando postagens com marcador while. Mostrar todas as postagens
Mostrando postagens com marcador while. Mostrar todas as postagens

quinta-feira, 27 de junho de 2013

Linguagem C: Laço de repetição do / while

A diferença do "do/while" para o laço "while" é que a condição e verificada no final de sua estrutura. Dessa forma ele sempre vai executar, pelo menos, uma vez.
Exemplo:
main()
{
      int i = 10;
      do{
          printf("O laco do-while eh executado pelo menos uma vez.");
      }while(i < 10);
      getch();
      return 0;
}

Observe no código acima que mesmo o contador "i" já estando em 10 o laço ainda imprimiu a linha uma vez (Observe sua condição no final da estrutura na linha 6).
Um exemplo muito útil é um menu em linguagem C. O menu deve aparecer na tela independente da condição, obviamente, e o usuário escolhe a seguir a opção que deseja executar:
main()
{
      char op;
      do{
          system("cls"); //limpar tela (windows)
          printf("1- Opcao 1 \n2- Opcao 2 \n3- Opcao 3 \n0- Sair\n");
          op = getch();
          switch(op)
          {
               case '1': 
                    system("cls");
                    printf("Voce escolheu a opcao 1\n");
                    getch(); break;
               case '2': 
                    system("cls");
                    printf("Voce escolheu a opcao 2\n"); 
                    getch(); break;
               case '3': 
                    system("cls");
                    printf("Voce escolheu a opcao 3\n"); 
                    getch(); break;
               case '0': return 0;
               default: printf("Opcao invalida!\n");
          }
      }while(op != 0);
      getch();
      return 0;
}
Obviamente as dentro de cada caso do switch deveríamos substituir pelas instruções da opção escolhida pelo usuário. Faça o teste: substitua no código acima as instruções para criar uma calculadora que faça soma, divisão, subtração e multiplicação. Crie as variáveis necessárias e substitua o nome das opções.

quarta-feira, 26 de junho de 2013

Linguagem C: Laço de repetição while

O laço de repetição "while" é semelhante ao laço for. A diferença é que em sua sintaxe informamos apenas a condição:
main()
{
    int i = 0;
    while(i < 10)
    {
        printf("%d, ", i);
        i++;
    }
    getch();
    return 0;
}

Devemos ter cuidado para não criar laços de repetição que nunca atingirão a condição.
Observe que esse simples laço de repetição acima pode ser criado também com for.
Então, quando usar o "while" e quando usar o "for"?
Como observamos, no "while" não definimos o valor de um contador e seu fim. Isso será definido através dos comandos e cálculos que serão executados dentro de sua estrutura ou que serão informados pelo usuário. Por ter essa característica, podemos usa-lo quando não conhecemos o fim da execução do laço.
Exemplo:
Criar um programa que diga para o usuário quantos meses ele precisará para guardar uma determinada quantia de dinheiro.
main()
{
    float qnttotal, qntmes;
    int totalmeses = 1;
    printf("Informe o total que deseja guardar: ");
    scanf("%f",&qnttotal);
    printf("Informe quanto ira guardar por mes: ");
    scanf("%f",&qntmes);
    while((qntmes * totalmeses) < qnttotal)
        totalmeses++;
    printf("Sera necessario %d meses", totalmeses);
    getch();
    return 0;
}