Upload
vanbao
View
217
Download
0
Embed Size (px)
Citation preview
Estruturas de Decisão
Programação I Estruturas de Repetição
Prof. Carlos Alberto
Estruturas de Decisão
Expressões compactas
• Frequentemente existe a necessidade de
escrever expressões da forma:
variável = variável operador expressão
• C oferece um grupo especial de operadores de
atribuição que permitem escrever essas
expressões numa forma mais compacta:
variável operador= expressão
Estruturas de Decisão
Expressões compactas
• Essa forma de atribuição é também conhecida
como C reduzido, pois simplifica a codificação
de operações de atribuição;
• Funciona com todos os operadores binários da
linguagem C;
• Essa notação abreviada é largamente utilizada
em programas escritos profissionalmente em C.
Estruturas de Decisão
Expressões compactas
• Operadores aritméticos de atribuição na forma
compacta.
Estruturas de Decisão
Comandos de iteração
• Também conhecidos como laços, os comandos
de iteração permitem que um conjunto de
instruções seja executado até que ocorra uma
certa condição;
• A condição pode ser predefinida (laço for) ou
com o final em aberto (laços while e do-while)
Estruturas de Decisão
Repetição com while
• A estrutura while tem a seguinte forma:
• O funcionamento é controlado por uma
expressão de condição, cujo valor deve ser
verdadeiro para que o comando seja repetido.
• A repetição com precondição finaliza somente
quando sua condição torna-se falsa.
Estruturas de Decisão
Repetição com while
• Em C, a sintaxe da estrutura while é a seguinte:
Estruturas de Decisão
Repetição com while
• Exemplo 1:
• Dado um número natural, exibir os seus dígitos. Por
exemplo, dado o número 8315 como entrada, o
programa deverá exibir como saída os dígitos 5, 1, 3 e
8. A estratégia será dividir o número sucessivamente.
Estruturas de Decisão
Repetição com while
• Exemplo 1:
Estruturas de Decisão
Repetição com do-while
• Comando while: é utilizado para repetir um
conjunto de comandos zero ou mais vezes.
• Repetição com Teste no Início
• Comando do-while: é utilizado sempre que o
bloco de comandos deve ser executado ao
menos uma vez.
• Repetição com Teste no Final
Estruturas de Decisão
Repetição com do-while
• Executa comandos
• Avalia condição:
• se verdadeiro, executa bloco de comandos novamente
• caso contrário, termina o laço
• Forma geral
do {
sequência de comandos;
} while (condição);
Sempre termina com ponto e vírgula!
garante que o comando seja executado pelo menos uma vez!
Estruturas de Decisão
Repetição com do-while
• Exemplo:
Estruturas de Decisão
Repetição com for
• O loop ou laço for é usado para repetir um
comando, ou bloco de comandos, diversas vezes
• Maior controle sobre o loop.
• Sua forma geral é:
for(inicialização; condição; incremento){
sequência de comandos;
}
Estruturas de Decisão
Repetição com for
• Inicialização: atribui valor inicial ao contador.
• Condição: verifica se o contador chegou ao fim.
• Incremento: ao término do bloco de comandos,
modifica o valor do contador
• Enquanto a contagem não termina, o comando
associado ao for é repetidamente executado.
for(inicialização; condição; incremento){
sequência de comandos;
}
Estruturas de Decisão
Repetição com for
• Exemplo 1: exibir os valores de 1 a 10
Inicialização
Condição
Incremento
Estruturas de Decisão
Repetição com for
• Exemplo 2: exibir os valores dentro de uma faixa
informada pelo usuário.
Estruturas de Decisão
Repetição com for
• É possível omitir qualquer elemento do for:
inicialização, condição e incremento.
• For sem inicialização
Estruturas de Decisão
Repetição com for
• For sem condição (gera um loop infinito)
Estruturas de Decisão
Repetição com for
• For sem incremento
Estruturas de Decisão
While versus for
• Comando while
• Repete uma sequencia de comandos enquanto uma
condição for verdadeira.
• Comando for
• Repete uma sequencia de comandos “N vezes”.
• Recomendado quando se sabe previamente quantas
vezes o laço será repetido
Estruturas de Decisão
While versus for
Inicialização
Condição
Incremento
Estruturas de Decisão
Desvio incondicional
• A linguagem C possui 4 instruções de desvio
incondicional:
• Return
• Goto;
• Break;
• Continue;
Estruturas de Decisão
Comando return
• Usado para retornar de uma função;
• Faz com que a execução retorne ao ponto em
que a chamada foi feita;
• A forma geral é:
return expressão
• Veremos mais detalhes na aula de funções
Estruturas de Decisão
Comando goto
• Salto incondicional para um local especificado
(pra frente ou pra trás);
• Requer um rótulo (label) para a sua operação;
• Um rótulo é um identificador válido seguido por
dois pontos;
• O rótulo deve estar na mesma função do goto
que o utiliza;
• Forma geral:
identificador:
goto identificador;
Estruturas de Decisão
Comando goto
• Exemplo 1
Estruturas de Decisão
Comando goto
• Exemplo 2
Estruturas de Decisão
Comando goto
• Em programação estruturada a instrução goto não é
necessária;
• Não há nenhuma situação em programação que o goto
seja imprescindível;
• A combinação das instruções sequenciais, condicionais e
de repetição são suficientes para todas as situações;
• O uso do goto tende a tornar os programas ilegíveis;
Estruturas de Decisão
Comando break
• Quebra a execução de um comando (como no
caso do switch);
• Para uma repetição mesmo antes que sua
condição torne-se falsa
• Interrompe a execução de qualquer loop (for, while ou
do-while).
Estruturas de Decisão
Comando break
• Quando encontrado dentro de um laço, este é
imediatamente terminado e o controle do
programa retorna para o comando seguinte.
Exemplo 1:
Estruturas de Decisão
Comando break
• Exemplo 2:
Estruturas de Decisão
Comando continue
• Trabalha de forma parecida com a do comando
break;
• Em vez de finalizar laço, força que ocorra a
próxima iteração, pulando qualquer código
intermediário;
• No for faz com que o teste condicional e o incremento
do laço seja executado;
• No while e do-while, o controle passa para o teste
condicional;
Estruturas de Decisão
Comando continue
• Exemplo 1
Estruturas de Decisão
Comando continue
• Exemplo 2
Estruturas de Decisão
Função exit()
• Provoca uma terminação imediata do programa,
forçando um retorno ao sistema operacional;
• Usado quando uma condição mandatória para a
execução do programa não é satisfeita;
• Forma geral:
exit(codigo_de_retorno);
Estruturas de Decisão
Função exit()
• Se o argumento da função for 0, o sistema
operacional é informado de que o programa
terminou com sucesso;
exit(0); // EXIT_SUCCESS
• Caso contrário, o sistema operacional é
informado de que o programa terminou de
maneira excepcional.
exit(1); // EXIT_FAILURE
Estruturas de Decisão
Função exit()
• Exemplo 1
Estruturas de Decisão
Função exit() • Exemplo
Estruturas de Decisão
Obrigado!!!