Romper com o Oriente de um C ++ while
Às vezes, a condição que faz com que você terminar uma enquanto O circuito de não ocorrer até algures no meio do ciclo. Isto é especialmente verdadeiro quando se testa a entrada do usuário por algum carácter de terminação. C ++ fornece esses dois comandos de controle para lidar com este caso:
pausa sai da espira interna mais imediatamente.
continuar passa o controlo volta para o topo do laço.
Os seguintes Produto programa demonstra tanto pausa e continuar. Este programa multiplica valores positivos inseridos pelo usuário até que o usuário digita um número negativo. O programa ignora zero.
//// Produto - demonstrar o uso de pausa e continue.//#include#incluir #incluir usando namespace std-int main (int nNumberofArgs, char * pszArgs []) {// inserir o número para calcular o ofcout factorial lt; lt; "Este programa multiplica os números n" lt; lt; "Introduzida pelo utilizador Introduza um n negativo." Lt; lt; "Número para sair Zeroes são ignoradas. N". Lt; lt; endl-int nProduct = 1-while (true) {int nValue-cout lt; lt; "Insira um número para multiplicar:" CIN II-III >> nValue-se (nValue lt; 0) {cout lt; lt; "Sair". lt; lt; endl-break-} if (nValue == 0) {cout lt; lt; "Ignorando zero." lt; lt; endl-continuar -} // acumulador multiplicar por este valor e // saída do resultcout lt; lt; nProduct lt; lt; "*" lt; lt; nValue-nProduct * = nValue-cout lt; lt; " é " lt; lt; nProduct lt; 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 () - retornar 0-}
O programa começa com um valor inicial de nProduct de 1. O programa então avalia a expressão lógica verdade para ver se é verdade. Isto é.
Não há também muitas regras que têm em C ++ sem exceção, mas aqui está um: verdade sempre é verdade.
O programa, em seguida, entra no circuito para pedir ao utilizador para outro valor para multiplicar vezes nProduct, o produto acumulado de todos os números inseridas até o momento. Se o valor introduzido for negativo, então o programa gera a frase "Sair". antes de executar o pausa, que passa o controle para fora do loop.
Se o valor inserido não é negativo, o controlo passa para o segundo E se declaração. E se nValue é igual a zero, então o programa gera as mensagens "Ignorando zero." antes de executar o continuar declaração que passa o controle de volta para o topo do loop para permitir que o usuário digite outro valor.
E se nValue que não é inferior a zero ou zero, então o controlo flui para baixo para onde nValue é multiplicado pela nProduct usando o operador de atribuição especial:
nProduct * = nValue-
Esta expressão é o mesmo que:
nProduct = nProduct * nValue-
A saída de um exemplo de execução deste programa aparece como segue:
Este programa multiplica o numbersentered pelo usuário. Introduza um negativenumber para sair. Zeros são ignored.Enter um número a se multiplicar: 21 * 2 é 2Introduzir um número a se multiplicar: 52 * 5 é 10Introduza um número a se multiplicar: 0Ignorando zero.Enter um número a se multiplicar: 310 * 3 é 30Enter um número a se multiplicar: -1Exiting.Press Enter para continuar. . .