Baixe o app para aproveitar ainda mais
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
Compartilhar