Faça Sua Pesquisa.

terça-feira, 14 de fevereiro de 2012

O Comando if LING. C


  • O else
  • O if-else-if
  • A expressão condicional
  • ifs aninhados
  • O operador ?

Já introduzimos o comando if. Sua forma geral é:
 if (condição) declaração;
 A expressão, na condição, será avaliada. Se ela for zero, a declaração não será executada. Se a condição for diferente de zero a declaração será executada. Aqui reapresentamos o exemplo de um uso do comando if:

#include <stdio.h>
int main ()
{
 int num;
 printf ("Digite um numero: ");
 scanf ("%d",&num);
 if (num>10)
     printf ("\n\nO numero e maior que 10");
 if (num==10)
        {
         printf ("\n\nVoce acertou!\n");
         printf ("O numero e igual a 10.");
        }
 if (num<10)
     printf ("\n\nO numero e menor que 10");
 return(0);
}

O else

Podemos pensar no comando else como sendo um complemento do comando if. O comando if completo tem a seguinte forma geral:
 if (condição) declaração_1;
else declaração_2;
 A expressão da condição será avaliada. Se ela for diferente de zero a declaração 1 será executada. Se for zero a declaração 2 será executada. É importante nunca esquecer que, quando usamos a estrutura if-else, estamos garantindo que uma das duas declarações será executada. Nunca serão executadas as duas ou nenhuma delas. Abaixo está um exemplo do uso do if-else que deve funcionar como o programa da seção anterior.

#include <stdio.h>
int main ()
{
 int num;
 printf ("Digite um numero: ");
 scanf ("%d",&num);
 if (num==10)
       {
        printf ("\n\nVoce acertou!\n");
        printf ("O numero e igual a 10.\n");
       }
 else 
       {
        printf ("\n\nVoce errou!\n");
        printf ("O numero e diferente de 10.\n");
       }
 return(0);
}

O if-else-if

A estrutura if-else-if é apenas uma extensão da estrutura if-else. Sua forma geral pode ser escrita como sendo:
 if (condição_1) declaração_1;
else if (condição_2) declaração_2;
else if (condição_3) declaração_3;
.
.
.
else if (condição_n) declaração_n;
else declaração_default;
 A estrutura acima funciona da seguinte maneira: o programa começa a testar as condições começando pela 1 e continua a testar até que ele ache uma expressão cujo resultado dê diferente de zero. Neste caso ele executa a declaração correspondente. Só uma declaração será executada, ou seja, só será executada a declaração equivalente à primeira condição que der diferente de zero. A última declaração (default) é a que será executada no caso de todas as condições darem zero e é opcional. Um exemplo da estrutura acima:

#include <stdio.h>
int main ()
{
 int num;
 printf ("Digite um numero: ");
 scanf ("%d",&num);
 if (num>10)
       printf ("\n\nO numero e maior que 10");
 else if (num==10)
        {
         printf ("\n\nVoce acertou!\n");
         printf ("O numero e igual a 10.");
        }
      else if (num<10) 
             printf ("\n\nO numero e menor que 10");
 return(0);
}

A expressão condicional

Quando o compilador avalia uma condição, ele quer um valor de retorno para poder tomar a decisão. Mas esta expressão não necessita ser uma expressão no sentido convencional. Uma variável sozinha pode ser uma "expressão" e esta retorna o seu próprio valor. Isto quer dizer que teremos as seguintes expressões:

                int num;
                if (num!=0) ....
                if (num==0) ....
  for (i = 0; string[i] == '\0'; i++)
equivalem a

                int num;
                if (num) ....
                if (!num) ....
  for (i = 0; string[i]; i++)
Isto quer dizer que podemos simplificar algumas expressões simples.

ifs aninhados

if aninhado é simplesmente um if dentro da declaração de um outro if externo. O único cuidado que devemos ter é o de saber exatamente a qual if um determinado else está ligado. Vejamos um exemplo:

#include <stdio.h>
int main ()
{
 int num;
 printf ("Digite um numero: ");
 scanf ("%d",&num);
 if (num==10)
        {
         printf ("\n\nVoce acertou!\n");
         printf ("O numero e igual a 10.\n");
        }
 else
        {
         if (num>10)
                {
                 printf ("O numero e maior que 10.");
                }
         else
                {
                 printf ("O numero e menor que 10.");
                }
        }
 return(0);
}

O Operador ?

Uma expressão como:
if (a>0)
        b=-150;
else
        b=150;
pode ser simplificada usando-se o operador ? da seguinte maneira:
b=a>0?-150:150;
De uma maneira geral expressões do tipo:
if (condição)
expressão_1;
else
expressão_2;
podem ser substituídas por:
condição?expressão_1:expressão_2;
O operador ? é limitado (não atende a uma gama muito grande de casos) mas pode ser usado para simplificar expressões complicadas. Uma aplicação interessante é a do contador circular. Veja o exemplo:
#include <stdio.h>
int main()
{
     int index = 0, contador;
     char letras[5] = "Joao";
     for (contador=0; contador < 1000; contador++)
     { 
 printf("\n%c",letras[index]);
 index="(index" 4)? index="0:" ++index; 
     }
} 
O nome Joao é escrito na tela verticalmente até a variável contador determinar o término do programa. Enquanto isto a variável index assume os valores 0, 1, 2, 3, 4, 0, 1, ... progressivamente.

0 comentários:

Postar um comentário

TecCodigos Copyright © 2011 | Template created by O Pregador | Powered by Blogger