Controle de fluxo em C ++ Programming
As seguintes estruturas C ++ direcionar o fluxo de controle através do programa. Se você é um programador experiente, a função destas estruturas será familiar de outras línguas.
E SE
Os seguintes avalia comando booleanExpression. Se é avaliada como verdade, em seguida, o controlo passa para expressions1. Se não, então o controlo passa para o opcional expressions2.
if (ExpressãoBooleana) {expressions1 -} [else {expressions2-}]
ENQUANTO
Os seguintes avalia comando booleanExpression. Se este for avaliada como verdade, em seguida, o controlo passa paraexpressões. No final do bloco, o controlo passa para trás ExpressãoBooleana e repete o processo.
while (ExpressãoBooleana) {} Expressões do
DO nº 133-ENQUANTO
Os seguintes comando é executado expressões. Em seguida, ele avalia ExpressãoBooleana. Se este for avaliada como True, o controle retorna ao topo do circuito e repete o processo.
fazer {Expressões do} while (ExpressãoBooleana) -
PARA
Os seguintes comando é executado initCommand que pode ser uma expressão ou uma declaração de variável. Em seguida, ele avalia expressaoBool. Se este for avaliada como verdade, em seguida, o controlo passa para expressions1. E se expressaoBool é falso, em seguida, o controle passa para a primeira declaração após a cinta fechada do para loop. Uma vez expressões concluída, o controle passa para a expressão contida no LoopExpression antes de voltar para expressaoBool para repetir o processo. E se initCommand declara uma nova variável, ele sai do escopo assim que o controle passa fora do loop.
for (initCommand- boolExpression- LoopExpression) {} Expressões do
PARA CADA)
O Standard 2011 apresenta uma segunda forma de para ciclo, por vezes conhecido como "para cada" por causa de sua semelhança com o para cada encontrado em alguns outros idiomas. Nesta forma, a variável declarada em declaração converte o valor do primeiro membro Lista e executa o expressões quadra. Quando concluída, a variável declarada leva o segundo valor de Lista e executa expressões mais uma vez. Este processo é repetido para cada valor Lista.
for (declaração: lista) {} Expressões do
INTERRUPTOR
Os seguintes avalia comando integerExpression e compara o resultado para cada um dos casos enumerados. Se o valor se encontra a ser igual a um dos valores integrais constantes, val1, val2, etc., o controle passa para o conjunto correspondente de expressões e continua até que o controle encontra um pausa. Se a expressão não for igual a nenhum dos valores, o controlo passa para o expressionsN Segue padrão.
switch (integerExpression) {case val1: expressions1-break-caso val2: expressions2-break-[padrão: expressionsN-]}
Tempo, continue, GOTO
UMA continuar passa o controlo para o fim da cinta fechada de qualquer um dos controlos looping. Isso faz com que o loop para continuar com a próxima iteração. Por exemplo, o ciclo seguinte processa números primos entre 1 e 20:
for (int i = 0- i lt; 20- i ++) {// se o número não é primo ... se) {// ... pular para o próximo valor de icontinue (isPrime (i!) -} // Avançar sobre o processamento}
UMA pausa passa o controle para a primeira declaração após a cinta fechada de qualquer um dos comandos de looping. Isto faz com que a execução para sair do ciclo imediatamente. Por exemplo, a seguir lê os caracteres até e é encontrado EOF:
while (true) {// ler uma linha de entrada objectinput >> line - // se uma falha ou fim-de-arquivo ocorre ... if (cin.eof () || cin.fail ()) {// ... em seguida, sair do LoopBreak -} // processo da linha}
UMA etiqueta Goto passa o controle para o rótulo fornecido. O exemplo a quebra acima poderia ter sido escrito como se segue:
while (true) {// ler uma linha de entrada objectinput >> line - // se uma falha ou fim-de-arquivo ocorre ... if (cin.eof () || cin.fail ()) {// ... em seguida, sair do exitLabel loopgoto -} // processo da linha} exitLabel: // controlo continua aqui