Como aplicar controles de loop especiais em c ++
C ++ define dois comandos especiais de controlo de fluxo como conhecido pausa
Conteúdo
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}