Você está na página 1de 5

Centro de Tecnologia Microgenios - Todos os direitos reservados

Clique aqui para Imprimir o doc

umento

Estruturas de controles e laos de repetio

1.0 O comando IF (SE)


1.1 O comando Switch

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;
}

A estrutura if, else, if


Podemos criar arranjos (nesting) de comandos atravs da estrutura if, else, if. Os arranjos so criados
bastando colocar estruturas if aninhadas com outras estruturas if.
Seu formato geral :
if (condio1) declarao 1; else
if (condio2) declarao 2; else
if (condio3) declarao 3; else
if (condio4) declarao 4;
Exemplo:
void main() {
int contador = 10;
int sinal = 5;
if (contador > sinal) sinal++; else
if (contador < sinal) sinal--; else
if (contador == sinal) sinal = 0;
}

Podemos tambm executar blocos de comandos utilizando os recursos das chaves ( { e } ).


Exemplo:

void main() {

int contador = 10;


int sinal = 5;
if (contador > sinal)
{
sinal++;
contador = 20;

//utilizao de blocos de comando na estrutura if-else-if

}
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.

voltar para o topo da pagina

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.

voltar para o topo da pagina

Centro de Tecnologia Microgenios - Curso de Microcontroladores PIC - Programao


em C
Microgenios 1998 - 2008. Todos os direitos reservados. proibido cpia parcial ou
integral desse material sem prvio aviso. Maiores informaes:
suporte@microgenios.com.br

Você também pode gostar