Buscar

05_comandos_de_controle

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 47 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 47 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 47 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Comandos de Controle
Prof. Jarbas Joaci de Mesquita Sá Junior
Comandos de Controle
� O padrão ANSI divide os comandos C 
nestes grupos
� Seleção: if e switch
� Iteração: while, for, do-while
� Desvio: break, continue, goto e return
� Rótulo: case, default, label
� Expressão
� Bloco
Comandos de seleção
� A forma geral da sentença if é:
if (expressão) comando;
else comando;
If (*)
If (*)
If aninhado
� Um if aninhado é um comando if que é 
o objeto de outro if ou else
� Um else sempre se refere ao if mais 
próximo, que está dentro do mesmo 
bloco do else e não está associado a 
outro if
If aninhado
� O padrão ANSI especifica um mínimo 
de 15 níveis de aninhamento
If aninhado(*)
A escada if-else-if
A escada if-else-if
O ? alternativo
� É possivel usar o operador ? para substituir 
comandos if-else na forma geral: 
� if (condição) expressão;
� else expressão;
� O operador ? é chamado de operador 
ternário porque ele requer três operandos. 
Ele tem a seguinte forma geral:
� exp1?exp2:exp3;
O ? alternativo
A expressão condicional
� Para controlar o if ou o ?, não é 
necessário ficar restrito às expressões 
relacionais ou lógicas.
� Basta que a expressão chegue a um 
valor zero ou não-zero.
� Maior flexibilidade!
A expressão condicional
switch
� Comando de seleção múltipla que testa 
sucessivamente o valor de uma 
expressão contra uma lista de 
constantes inteiras ou caractere.
� Quando o valor coincide, os comandos 
associados àquela constante são 
executados.
switch
switch
� O Padrão ANSI especifica que um switch 
pode ter pelo menos 257 comandos case. Na 
prática, porém, usa-se um número menor de 
comandos.
� Embora case seja um rótulo, só pode existir 
dentro de um switch.
� O comando break é um dos comandos de 
desvio do C.
� O comando default é opcional.
switch
� O switch difere do if porque só pode testar 
igualdade.
� É proibido ter duas constantes case no 
mesmo switch. Se os switchs forem 
aninhados, então é possível.
� Se constantes de caractere são usadas em 
um comando switch, elas são 
automaticamente convertidas para seus 
valores inteiros
switch
switch – breaks e cases
sem comandos
switch-declarações de 
variáveis
Comandos switch aninhados
Comandos de iteração
� Permitem que um conjunto de 
instruções seja executado até que 
ocorra uma certa condição;
� for
� while
� do-while
for
� A forma geral do for é:
� for(inicialização;condição;incremento) 
comando;
� A inicialização é geralmente um comando 
de atribuição.
� A condição é uma expressão relacional
� O incremento determina como a variável 
de controle do laço varia cada vez que o 
laço é repetido.
for
for (dois exemplos)
Variações do laço for
� C oferece flexibilidade na utilização do 
laço for.
� Uma das variações mais comuns é usar 
o operador vírgula para permitir que 
duas ou mais variáveis controlem o 
laço.
Variações do laço for (*)
� A expressão condicional não precisa envolver um teste 
com a variável que controla o laço e algum valor final.
Variações do laço for (*)
Variações do laço for
� As partes de definição do laço não 
precisam existir
� O que o código acima faz?
O laço infinito
� Embora qualquer comando de laço 
possa ser usado para criar um laço 
infinito, o for é usado tradicionalmente 
para esse fim. 
� A construção for(;;) não garante um 
laço infinito se o comando break for 
usado.
Ex. de laço infinito usando 
break
Laços for sem corpos
� Pela definição da linguagem C, um 
comando pode ser vazio.
� Isso pode ser usado para aumentar a 
eficiência de certos algoritmos e para 
criar laços de atraso de tempo.
� Ex.
O laço while
� Forma geral
� while (condição) comando;
� comando pode ser um comando vazio, 
comando simples ou bloco de comandos.
� A condição pode ser qualquer expressão e 
verdadeiro qualquer valor não-zero.
� Quando a condição for falsa, o controle do 
programa passa para a linha após o código 
do laço.
O laço while (exemplo)
O laço while (exemplo)
� Se diversas condições forem 
necessárias para terminar um laço 
while, normalmente uma única variável 
forma a expressão condicional. 
� O valor dessa variável pode será 
alterado em vários pontos internos ao 
laço.
O laço while (exemplo)
� Não é necessário haver comandos no corpo 
do laço while;
O laço do-while
� Ao contrário dos laços for e while, que 
testam a condição no início do laço, o laço 
do-while testa a condição no final.
� A forma geral é: 
� do {comando;}(condição);
� Embora as chaves não sejam necessárias 
para apenas um comando, elas são 
geralmente usadas para não gerar confusão.
� Ex.
O laço do-while (*)
Comandos de Desvio
� C possui quatro comandos de desvio: 
return, goto, break e continue.
� return e goto podem ser usados em 
qualquer lugar do programa.
� break e continue são usados em 
laços.
� break também é usado com switch.
Comando return
� Usado para retornar uma função.
� Se tem um valor associado, esse é o valor de retorno 
da função.
� Se não tem valor associado, o valor pode ser zero ou 
“lixo”.
� forma geral:
� return expressão.
� Uma função pode ter vários return’s
� Se uma função não possui um return, então } 
ocasiona o retorno da função
� void e return.
Comando goto
� Quase não se usa porque qualquer situação 
de programação pode ser sanada sem ele.
� A maioria dos programadores considera que 
esse comando torna o programa ilegível.
� Exige um rótulo, que deve estar na mesma 
função onde foi declarado o goto.
Comando break
� Usado para terminar um case em um 
comando switch.
� Quando o comando break é encontrado 
dentro de um laço, este é imediatamente 
terminado e o comando passa para o controle 
seguinte ao laço
Comando break
� O comando break provoca a saída 
apenas do laço mais interno.
Comando exit();
� Da mesma forma que é possível sair do laço, 
é possível sair do programa usando a função 
exit() da biblioteca padrão.
� forma geral
� void exit(int código_de_retorno)
� O zero é geralmente usado como um código 
de retorno que indica uma terminação normal 
do programa.
Comando continue
� Trabalha de forma parecida com o break.
� Em vez de forçar a terminação do laço, esse 
comando força a próxima iteração do mesmo.
� Para o laço for, continue faz com que o 
teste condicional e a porção de incremento 
do laço sejam executados.
� Para os laços while e do-while, o controle 
do programa passa para o teste condicional.
Comandos de expressões

Outros materiais