Como aplicar controles de loop especiais em c ++

C ++ define dois comandos especiais de controlo de fluxo como conhecido pausa

e continuar. Às vezes, a condição para terminar um ciclo ocorre em nem o começo nem o fim do loop, mas no meio. Considere um programa que se acumula número de valores inseridos pelo usuário. O loop termina quando o utilizador introduz um número negativo.

Video: Caracteres com acento e especiais na Linguagem C parte 1

O desafio com este problema é que o programa não pode sair do loop até que o usuário tenha entrado um valor, mas deve sair antes que o valor é adicionado à soma.

Para estes casos, C ++ define o pausa comando. Quando encontrado, o pausa causas controlar a sair do circuito de corrente imediatamente. O controlo passa do pausa declaração à instrução imediatamente após a cinta fechada no final do ciclo.

Video: C++ Programming 11 - Flag controlled while loop

O formato do pausa comandos é como segue:

while (condição) // quebrar funciona igualmente bem em loop {if (alguma outra condição) {// break sair do loop}} // controle passa aqui quando o programa // encontra o intervalo

Armado com este novo pausa comando, uma solução para o problema acumulador aparece como o programa BreakDemo:

Video: Dev C For loop

// BreakDemo - entrada de uma série de numbers.// continuar a acumular a soma // destes números até que o utilizador // entra um número negativo incluem #. #incluir #incluir usando espaço de nomes std-int principal (int nNumberofArgs, char * pszArgs []) {// entrada do acumulador de circuito countint = 0-cout lt; lt; "Este programa resume valores do usern"lt; lt; "Terminar inserindo um número negativo"lt; lt; endl - // faz um loop "para sempre"para (-) {// buscar outra numberint nValue = 0-cout lt; lt; "Digite o próximo número: "CIN II-III gt; gt; nValue - // se for negativo ... se (nValue lt; 0) {// ... então exitbreak -} // ... caso contrário adicionar o número à accumulatoraccumulator + = nValue -} // agora que já saiu do loop // saída do resultcout acumulada lt; lt; "nA total está "lt; lt; accumulatorlt; lt; endl - // espera até que o usuário está pronto antes de terminar o programa // para permitir que o usuário veja o resultscout programa lt; lt; "Pressione Enter para continuar ..." lt; lt; endl-cin.ignore (10, `n`) - cin.get () - 0-} retornar


Depois de explicar as regras para o utilizador (introduzir um número negativo para terminar e assim por diante), o programa entra no que parece uma infinita para ciclo. Uma vez dentro do circuito, BreakDemo recupera um número a partir do teclado. Só depois que o programa tenha lido o número pode-lo testar para ver se esse número corresponde aos critérios de saída.

Video: Parte 9 (Dev-C++) - Estruturas de repetição While e Do-While

Se o número de entrada é negativo, o controlo passa para o pausa, fazendo com que o programa para sair do ciclo. Se o número de entrada é não , baldes de controlo negativo sobre a pausa comandar a expressão que resume o novo valor para o acumulador. Depois que o programa sai do loop, ele gera o valor acumulado e então sai.

Ao realizar uma operação em uma variável repetidamente em um loop, certifique-se de que a variável é inicializada corretamente antes de entrar no loop. Neste caso, os zeros do programa acumulador antes de entrar no circuito fechado onde nValue é adicionado a ele.

O resultado de um exemplo de execução aparece como se segue:

Este programa resume os valores da userTerminate introduzindo um numberEnter negativo próximo número: 1Digite o próximo número: 2Digite o próximo número: 3Digite o próximo número: -1The total é 6Pressione Enter para continuar ...

o semelhante continuar comando é usado com menos frequência. Quando o programa encontra o continuar comando, ele imediatamente se move de volta para o topo do loop. O resto das instruções no loop são ignorados para a iteração atual.

O seguinte exemplo de trecho ignora números negativos que a entrada do utilizador poder. Apenas um 0 termina esta versão (o programa completo aparece no site como ContinueDemo):

while (true) // este while () tem o mesmo efeito como para (-) {// inserir um valuecout lt; lt; "Introduzir um valor:"CIN II-III gt; gt; nValue - // se o valor for negativo ... se (nValue lt; 0) {// ... mensagem de saída um erro ... cout lt; lt; "Os números negativos não são allowedn"- // ... e voltar para o topo da loopcontinue -} // ... continuar a processar a entrada como o normal}

Publicações relacionadas