Mudanças entre as edições de "Sumário de operadores de controle de fluxo em ANSI C"
Linha 61: | Linha 61: | ||
Se assemelha ao if...else. Primeiro se declara o teste lógico (fazendo a função do conteúdo entre parênteses do if), depois do ? o comando para se verdadeiro (equivale ao comando simples após o if) e após : o comando se falso (equivale ao comando simples do else). | Se assemelha ao if...else. Primeiro se declara o teste lógico (fazendo a função do conteúdo entre parênteses do if), depois do ? o comando para se verdadeiro (equivale ao comando simples após o if) e após : o comando se falso (equivale ao comando simples do else). | ||
− | / | + | //Formato da estrutura "? " |
− | + | //se o teste lógico der verdadeiro o comando1 será executado, | |
− | + | //caso contrário será executado o comando2 | |
− | |||
− | |||
expressão_teste_lógico ? comando1 : comando2 | expressão_teste_lógico ? comando1 : comando2 |
Edição das 13h29min de 4 de maio de 2016
Operadores de controle de fluxo em ANSI C: Ramificação e repetição. Ramificação está decidindo que ações tomar de acordo com certas condições e repetição está tratando de quantas vezes realizar determinada ação.
Ramificação
Um ramo é chamado (executado) apenas se o programa escolher percorrê-lo através de testes lógicos. Desta forma é possível executar determinadas ações ou outras de acordo com condições que podem variar no tempo.
operador if
É a mais simples forma de ramificação. A expressão entre parênteses será testada, se for verdadeira um comando ou um bloco de comandos será executado. Se for falso este comando ou bloco será ignorado e o programa segue seu curso sem portanto executar certo trecho de código. Um teste é tido como verdadeiro se seu resultado é um valor diferente de zero. Abaixo dois exemplos, o primeiro executando um comando simples e outro um bloco (comandos compostos)
//comando simples if (expressão_de_teste_logico) comando;
if (expressão_de_teste_logico) { comando1; comando2; comandoN; }
operador if em estrutura if...else
Pode-se também determinar o que se deve fazer se o teste for falso. Neste caso em uma execução apenas um trecho será executado, não há possibilidade de ambos serem executados na mesma execução.
if (expressão_de_teste_logico) { comando1; comando2; comandoN; } else { comando1_2; comando2_2; comandoN_2; }
Operador if em cascata
Pode-se ainda configurar operadores if em cascata, desta forma pode-se testar diferentes condições lógicas. Apenas um trecho de código será executado em um ciclo de execução.
if (expressão_de_teste_logico) { comando1; comando2; comandoN; } else if(expressão_de_teste_logico) { comando1_2; comando2_2; comandoN_2; } else { comando1_3; comando2_3; comandoN_3; }
Operador ?
Se assemelha ao if...else. Primeiro se declara o teste lógico (fazendo a função do conteúdo entre parênteses do if), depois do ? o comando para se verdadeiro (equivale ao comando simples após o if) e após : o comando se falso (equivale ao comando simples do else).
//Formato da estrutura "? " //se o teste lógico der verdadeiro o comando1 será executado, //caso contrário será executado o comando2 expressão_teste_lógico ? comando1 : comando2