A estrutura condicional está no seu dia-a-dia. Antes de sair de casa, por exemplo, podemos olhar pela janela verificar como está o tempo: se o tempo estiver nublado e com nuvens carregadas, levarei o guarda-chuva.
É exatamente dessa mesma forma que funciona a estrutura condicional de uma linguagem de programação. Posso através dele verificar se um determinado valor é igual (==) ao valor de outra variável, se é maior (>), se é menor, maior igual (>=) ou menor igual (<=). A verificação que farei vai depender do valor que eu desejo que seja retornado.
Antes de usar a estrutura condicional if é importante que você entenda os operadores relacionais e os operadores lógicos.
if - Estrutura simples:
A estrutura simples contém apenas uma condição. Se está condição for verdadeira (1) o programa executa sua(s) instrução(ões).
Exemplos:
main() { int a, b; printf("Informe 2 valores inteiros: "); scanf("%d %d", &a, &b); if(a>b) printf("A variavel a eh maior que b\n"); system("pause"); }Nesse código o usuário entra com os valores da variável a e da variável b e dentro da estrutura condicional é comparado se a é maior que b. Se verdadeiro o programa retorna a mensagem: "A variável a eh maior que b", ou continua em system("pause");. Se houvesse mais linhas abaixo da estrutura condicional o programa continuaria a execução. Exemplo:
main() { int a, b; printf("Informe 2 valores inteiros: "); scanf("%d %d", &a, &b); if(a>b) printf("A variavel a eh maior que b\n"); printf("Nesta estapa o programa ja esta fora da estrutura condicional.\n"); printf("Pressione uma tecla...\n\n"); getch(); printf("O programa encerrara.\n"); system("pause"); }Nesse exemplo a estrutura condicional executa uma única instrução. Quando há mais de uma instrução a ser executada devemos fazer uso das chaves:
if(condição)
{
instrução1;
instrução2;
...;
instruçãoN;
}
Obs.: se a estrutura condicional possuir apenas uma instrução também é permitido o uso da chave.
Exemplo:
main() { int a, b, aux; printf("Informe 2 valores inteiros: "); scanf("%d %d", &a, &b); if(a>b) { aux = a; a = b; b = aux; } printf("Os números foram ordenados: %d, %d\n\n", a, b); printf("O programa encerrara.\n"); system("pause"); }No código acima se a primeira variável (a) for maior que a segunda (b) o programa inverte seus valores para imprimi-las na ordem.
if, else - Composta:
A estrutura composta faz uso do else (senão), indicando outra(s) condição(ões) caso a primeira não seja executada.Exemplo:
main() { char cor; printf("Escolha uma cor: \n0: Preto\n1: Azul\n2: Verde\n"); scanf("%c", &cor); if(cor == '0') { system("color 0"); printf("Voce escolheu a cor preta.\n"); } else if(cor == '1') { system("color 1"); printf("Voce escolheu a cor azul.\n"); } else if(cor == '2') { system("color 2"); printf("Voce escolheu a cor verde.\n"); } else printf("Invalido.\n"); printf("\nO programa sera encerrado.\n"); system("pause"); }
No código acima é feita a primeira condição if(cor == '0'), se esta não for verdadeira então é passada para a segunda condição else if(cor == '1'), se esta não for verdadeira é passado para a terceira else if(cor == '2') e por fim colocamos apenas um else que indica que se não for nenhuma da alternativas anteriores será dada a mensagem "Invalido".
Apenas UMA das condições pode ser executada, e assim que uma delas for executada o programa é jogado para fora da estrutura condicional. Observe que toda a estrutura condicional do código acima faz parte de uma unica estrutura, outra seria aberta se iniciássemos outro if.
if, else - Estrutura aninhada:
A estrutura aninhada é, basicamente, um if dentro de outro. Ou seja, se a primeira condição for verdadeira (1) poderei ter uma segunda condição, terceira, quarta, etc.Exemplo:
main() { int a = 0, b = 2, c = 0, d = 10, e = -8; if((a == 0) && (b == 2)) { if(c > 0) printf("Comando 1\n"); else if(d >= 10) { if(e < 0) printf("Comando 2\n"); else printf("Comando 3\n"); } } printf("O programa sera encerrado.\n"); system("pause"); }
main()
{
int a = 0, b = 2, c = 0, d = 10, e = -8;
if((a == 0) && (b == 2))
{
if(c > 0)
printf("Comando 1\n");
else if(d >= 10)
{
if(e < 0)
printf("Comando 2\n");
else
printf("Comando 3\n");
}
}
printf("O programa sera encerrado.\n");
system("pause");
}
Observe que neste código a 3 estruturas condicionais uma dentro da outra. A estrutura azul está dentro da estrutura verde que está dentro da estrutura vermelha. Sendo assim a estrutura na cor verde só é executa se a estrutura vermelha for verdadeira e a estrutura azul só é executada se a primeira condição da estrutura verde (if(c > 0)) for falsa e a segunda (else if(d >= 10)) verdadeira.Os operadores lógicos podem ser usados para simplificar seu código fonte, não havendo necessidade de criar estruturas condicionais aninhadas tão complexas.
É importante você testar todos os possíveis fluxos do seus dados, evitando erro de lógica. Para isso podemos usar a depuração (Debugging).
Há ainda a estrutura switch / case, que faz uma função parecida com a da estrutura if, mais em alguns casos pode ser mais adequada e mais legível.
Nenhum comentário:
Postar um comentário