salida inmediata de 'while' bucle en C ++ [cerrado]
-
22-08-2019 - |
Pregunta
¿Cómo se sale de un bucle while
de inmediato sin tener que ir hasta el final del bloque?
Por ejemplo,
while (choice != 99)
{
cin >> choice;
if (choice == 99)
//Exit here and don't get additional input
cin>>gNum;
}
¿Alguna idea?
Solución
Uso romper?
while(choice!=99)
{
cin>>choice;
if (choice==99)
break;
cin>>gNum;
}
Otros consejos
cin >> choice;
while(choice!=99) {
cin>>gNum;
cin >> choice
}
No es necesario un descanso, en ese caso.
Con romper , tales como:
while(choice!=99)
{
cin>>choice;
if (choice==99)
break; //exit here and don't get additional input
cin>>gNum;
}
Esto funciona para de también bucles, y es la palabra clave para poner fin a una cláusula de interruptor. Más información aquí .
break;
.
while(choice!=99)
{
cin>>choice;
if (choice==99)
break;
cin>>gNum;
}
Sí, ruptura va a funcionar. Sin embargo, es posible que muchos programadores prefieren no usarlo cuando sea posible, más bien, utilizar un condicional if para realizar cualquier otra cosa en el bucle (por lo tanto, no realizar él y salir del bucle limpiamente)
Algo como esto va a lograr lo que está buscando, sin tener que utilizar un descanso.
while(choice!=99) {
cin >> choice;
if (choice != 99) {
cin>>gNum;
}
}
hmm, break
?
while(choice!=99)
{
cin>>choice;
if (choice==99)
exit(0);
cin>>gNum;
}
Confía en mí, que salir del bucle. Si eso no funciona, nada lo hará. Mente, esto puede no ser lo que quieres ...
Sí, estoy bastante seguro de que acaba de poner
break;
justo donde quieres que salga
como
if (variable == 1)
{
//do something
}
else
{
//exit
break;
}
Trate
break;
Nunca se debe utilizar una instrucción break para salir de un bucle. Por supuesto que puede hacerlo, pero eso no significa que usted debe. Simplemente no es una buena práctica de programación. La forma más elegante de salir es el siguiente:
while(choice!=99)
{
cin>>choice;
if (choice==99)
//exit here and don't get additional input
else
cin>>gNum;
}
Si la elección es del 99 no hay nada más que hacer y el bucle termina.