Escolar Documentos
Profissional Documentos
Cultura Documentos
umento
Estruturas de Controle
As estruturas de controle so usadas nos programas em lugares em que
necessitamos que a mquina faa repetidas operaes ou necessite de tomadas de
deciso.
O comando IF (SE)
O IF (SE, em portugus) uma estrutura de tomada de deciso baseada no resultado lgico de um teste.
Sua forma geral :
if (condio) comando;
ou
if (condio) { blocos de comandos};
Em C, qualquer nmero diferente de zero tido como verdadeiro. O que significa que uma condio em
C s falsa, quando os resultados dos operadores que aplicados for zero (0). Qualquer outro valor,
mesmo negativo, considerado como verdadeiro ou no zero.
No comando If, caso a condio seja verdadeira (diferente de zero), o comando, ou blocos de comandos
sero executados, caso contrrio, quando a condio for falsa (0 zero) o comando ser ignorado.
Exemplo:
void main() {
char a = 10;
char b = 0 ;
if (a) b--;
}
A varivel "a" foi atribuida o valor 10, que diferente de zero (0). Consequentemente, a o comando
if ser executado e a condio de decremento da varivel b ser executado; ( if (a) b--; ).
tambm possvel executar outro comando ou bloco de comandos no caso da condio ser avaliada como
falsa, para isso utilizamos os recursos do comando if - else.
Acompanhe seu formato geral:
if (expresso)
comando 1
else
comando 2
Exemplo:
if (x > 5)
z = 10;
else
z = 20;
A linha de comando if (x > 5) tem por funo verificar se acondio x>5 verdadeira, caso seja
verdadeira, a linha de programa z = 10 ser executada. Caso a condio do comando IF seja falsa, ou seja,
se "x" for menor que 5, ento a linha de comando z = 20 ser executada.
Todos os operadores do C podem ser incluidos no teste de uma condio, expresses vlidas da
linguagem C podem ser avaliadas para a gerao de um resultado booleano na estrutura if. As expresses
seguintes so vlidas e seus resultados dependero do valor de suas variveis. Exemplo:
if (a > b) b = a;
// se a expresso a > b for verdadeira, a varivel "b" assume o valor da "a"
if (b < a) b = 10;
// se a expresso a < b for verdadeira, a varivel "b" assume o valor 10
if (a != b) b = 55;
// se a expresso a !=b (diferente) for verdadeira, a varivel "b" assume o valor
55
if ( (a + b) > (b + d) ) b++; // se a expresso (a + b) > (b + d) for verdadeira, a varivel "b" ser
incrementada em uma unidade.
Observaes importantes:
O operador de atribuio de igualdade em C (=) diferente do operador relacional de igualdade (==).
Para testar a condio de uma varivel qualquer, utilizamos o operador relacional de igualdade (==).
Acompanhe:
if (a == b) c = 10;
diferente de
if (a = b) c = 10;
A condio (a == b) faz uma comparao entre as duas variveis, caso a condio seja verdadeira, a
varivel "C" assumir o valor 10;
O comando If seguinte, possui uma expresso de atribuio de igualdade (a = b). O compilador ao
compilar este comando, ir primeiramente atribuir a varivel "a" o valor contido em "b", e depois disso,
verificar se acondio no zero, caso seja verdadeiro o resultado (diferente de zero), a varivel "c"
assumir o valor 10;
No comando IF para adicionarmos blocos de programas, faz necessrio o uso dos simbolos abre- chaves
({) efecha-chaves (}).
Exemplo:
if (portb == portc)
{
//blocos de comandos
a++;
portb.f0 = 1;
d = c + e;
}
void main() {
}
else
if (contador < sinal)
{
sinal--;
contador = 15;
}
else
if (contador == sinal) sinal = 0;
}
A estrutura if uma das mais utilizadas para tomada de decises lgicas. Iremos utiliz-la em vrios
programas que desenvolveremos durante nosso curso.
O comando Switch
O comando switch uma forma mais clara e elegante de tomar deciso dentro de um programa em
C. Diferente do comando if, a estrutura switch no aceita expresso para a tomada de deciso, mas s
aceita constante.
switch (varivel)
{
case constante1:
declarao1A;
declarao1B;
declarao1N;
break;
case constante2:
declarao2A;
declarao2B;
declarao2N;
break;
default;
declarao_default;
}
O valor da varivel no comando switch comparada contra as constantes especificadas pela clusula
case. Caso a varivel e a constante possuam valores iguais, os comandos seguinte a clusula case sero
executados. Caso no tenha nennhuma constante com o mesmo valor da varivel, ento os comandos
especificados pela clusula default sero executados.
Acomanhe o exemplo:
void main() {
int contador = 10;
int sinal = 5;
switch(contador)
{
case 2: sinal++;
break;
case 1: sinal = 2;
break;
case 10: contador--;
break;
default: sinal = 0;
}
}
No exemplo de acima, a varivel contador ser comparada s constantes 2, 1 e 10. Como a varivel
contador possui o valor 10, consequentemente o comando que ser executado no exemplo acima case
10: contador--; (decrementa a varivel contador).
A clusula Break possui a funo de encerrar uma sequencia de comandos
de uma clusula case.
A clusula default o ltimo comando switch.