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?

¿Fue útil?

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.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top