Vous êtes sur la page 1sur 44

Estruturas de Controle

As estruturas de controle so fundamentais para qualquer linguagem de programao;


Sem elas s haveria uma maneira do programa ser executado: de cima para baixo, comando por comando; O padro ANSI divide os comandos de C nestes grupos:
Seleo; Interao; Desvio; Rtulo; Expresso; Bloco.

C suporta dois tipos de comandos de seleo: if e switch. Alm disso o operador ? uma alternativa ao if em certas circunstncias. A forma geral da sentena if :
if(expresso) { comando; }

else

{ comando; }

A clusula else opcional.

A expresso avaliada. Se ela for verdadeira (diferente de 0), o comando ou bloco que forma o corpo do if executado; Caso contrrio, o comando ou bloco que o corpo do else (se existir) executado.
Lembre-se: Apenas o cdigo associado ao if ou o cdigo associado ao else ser executado, nunca ambos;

Podemos tambm usar o comando if sem else, veja:

A estrutura if-else-if apenas uma extenso da estrutura if-else;


A sua forma geral : if(expresso) comando; else if(expresso) comando; else if(expresso) comando; ... else comando; As condies so avaliadas de cima para baixo.

Em C, o controlador do if precisa, apenas, ser zero ou no-zero, vejamos:

If(num2!= 0)

O switch um comando de seleo mltipla O switch testa sucessivamente o valor de uma expresso contra uma lista de constantes inteiras ou de caractere;

getche funo utilizada para leitura de caracter , um por vez

O padro ANSI C especifica que um switch pode ter pelo menos 257 comandos case;
Embora case seja um rtulo ele no pode existir sozinho, fora de um switch; O comando break um dos comandos de desvio em C. Pode us-lo em laos tal como no comando switch; Quando um break encontrado em um switch, a execuo do programa salta para a linha de cdigo seguinte ao comando switch;

Observaes importantes:
switch s pode testar igualdade, enquanto que o if pode avaliar uma expresso lgica e/ou relacional; Duas constantes case no mesmo switch no podem ter valores idnticos;

Se constantes de caractere so usadas em um comando switch, elas so automaticamente convertidas para seus valores inteiros; Se o comando break for omitido, a execuo do programa continua pelos prximos comandos case at que um break, ou o fim do switch seja encontrado;

Podemos ter um switch como parte de uma seqncia de comandos de outro switch, vejamos:

Na linguagem C, os comandos de repetio (tambm chamados laos) permitem que um conjunto de instrues seja executado at que ocorra uma certa condio;
As estruturas de repetio em C apresentamse em 3 formas distintas:
for - para while - enquanto do-while faa enquanto

O comando for a instruo mais utilizada na criao de estruturas de repetio; forma geral mais comum:
for(inicializao; condio; incremento) { comandos; }

Inicializao , geralmente, um comando de atribuio que usado para colocar um valor na varivel de controle do lao;
A condio uma expresso relacional que determina quando o lao acaba; O incremento define como a varivel de controle do lao varia cada vez que o lao repetido;

As sees no comando for so separadas por pontose-vrgulas; Uma vez que a condio se torne falsa, a execuo do programa continua no comando seguinte ao for, vejamos:

Podemos utilizar outras estruturas de controle dentro do lao for, vejamos:

Existe outra forma de imprimir somente os numros pares

Quando um lao for faz parte de outro lao for, dizemos que o lao interno est aninhado. Vejamos:

A segunda estrutura de repetio em C o lao while. A sua forma geral :

Ao contrrio dos laos for e while, que testam a condio do lao no comeo, o lao do-while verifica a condio ao final do lao;
Portanto, o lao do-while ser executado ao menos uma vez; Forma geral: do{

comando; } while(condio);

O lao do-while repete at que a condio se torne falsa.

Vejamos a principal diferena entre o lao do-while e o lao while:

do-while executa pelo menos uma vez.

Um uso mais comum do lao do-while uma rotina de seleo por menu, vejamos:

1)Faa um programa que imprima a tabela ASCII, fazendo uma pausa na impresso cada 24 caracteres.
2)Faa um programa que receba dois nmeros inteiros e imprima o intervalo fechado dos valores lidos:
Ex.: Se forem lidos 2 e 7, o programa dever imprimir 2, 3, 4, 5, 6, 7.

3) Faa um programa que leia 10 nmeros reais e imprima o maior, o menor, a soma e a mdia dos valores lidos. 4) Modifique o programa anterior e acrescente o seguinte menu (utilize do..while):
1 2 3 4 0 L novo valor Imprime soma Imprime mdia Imprime maior e menor Sair