Salir de la mitad de un c ++ while
A veces, la condición que hace que se termina una mientras bucle no se produce hasta algún lugar en medio del bucle. Esto es especialmente cierto cuando se prueba la entrada del usuario durante algún carácter de terminación. C ++ proporciona estos dos comandos de control para manejar este caso:
descanso sale del bucle interno más inmediatamente.
continuar pasa el control de nuevo a la parte superior del bucle.
El seguimiento Producto programa demuestra tanto descanso y continuar. Este programa multiplica valores positivos introducidos por el usuario hasta que el usuario introduce un número negativo. El programa ignora cero.
//// Producto - demostrar el uso de descanso y continuar .//# incluye#include #include using namespace std-int main (int nNumberofArgs, char * pszArgs []) {// introducir el número para calcular el factorial ofcout lt; lt; "Este programa multiplica los números n" lt; lt; "introducida por el usuario puede introducir un n negativo." lt; lt; "número para salir ceros son ignoradas. n". lt; lt; endl-int nProduct = 1-while (true) {int nValue-cout lt; lt; "Introduzca un número de multiplicar:" cin >> nValue-si (nValue lt; 0) {cout lt; lt; "Salir". lt; lt; endl-desglose} if (nValue == 0) {cout lt; lt; "Haciendo caso omiso de cero." lt; lt; endl-continue -} // acumulador se multiplica por este valor y // salida del resultcout lt; lt; nProduct lt; lt; "*" lt; lt; nValue-nProduct * = nValue-cout lt; lt; " es " lt; lt; nProduct lt; lt; endl -} // espera hasta que el usuario está listo antes de finalizar el programa // para que el usuario pueda ver el resultscout programa lt; lt; "Pulse Intro para continuar ..." lt; lt; endl-cin.ignore (10, ' n') - cin.get () - volver 0-}
El programa comienza con un valor inicial de nProduct de 1. Entonces, el programa evalúa la expresión lógica cierto para ver si es verdad. Es.
No hay demasiadas reglas que mantienen en C ++ sin excepción, pero aquí hay una: cierto siempre es cierto.
Entonces, el programa entra en el bucle para solicitar al usuario otro valor para multiplicar los tiempos nProduct, el producto acumulado de todos los números introducidos hasta el momento. Si el valor introducido es negativo, entonces el programa emite la frase "Salir". antes de ejecutar el descanso, que pasa el control fuera del bucle.
Si el valor introducido no es negativo, el control pasa a la segunda si comunicado. Si nValue es igual a cero, entonces el programa da salida a los mensajes "Haciendo caso omiso de cero." antes de ejecutar el continuar declaración que pasa a controlar de nuevo a la parte superior del bucle para permitir al usuario introducir otro valor.
Si nValue no es ni menor que cero ni cero, entonces controlar los flujos hacia donde nValue se multiplica por nProduct usando el operador especial de asignación:
nProduct * = nValue-
Esta expresión es el mismo que:
nProduct = nProduct * nValue-
La salida de un muestra de ejecución de este programa aparece como sigue:
Este programa multiplica la numbersentered por el usuario. Introduzca un negativenumber para salir. Ceros son ignored.Enter un número a multiplicar: 21 * 2 es 2Introduzca un número a multiplicar: 52 * 5 es 10Introduzca un número a multiplicar: 0Ignorando zero.Enter un número a multiplicar: 310 * 3 es 30Enter un número a multiplicar: -1Exiting.Press Intro para continuar. . .