Pergunta

Como faço para sair de um loop de while imediatamente sem ir ao final do bloco?

Por exemplo,

while (choice != 99)
{
    cin >> choice;
    if (choice == 99)
        //Exit here and don't get additional input
    cin>>gNum;
}

Todas as idéias?

Foi útil?

Solução

Use pausa?

while(choice!=99)
{
  cin>>choice;
  if (choice==99)
    break;
  cin>>gNum;
}

Outras dicas

cin >> choice;
while(choice!=99) {
    cin>>gNum;
    cin >> choice
}

Você não precisa de uma pausa, nesse caso.

Use pausa , como tal:

while(choice!=99)
{
  cin>>choice;
  if (choice==99)
    break; //exit here and don't get additional input
  cin>>gNum;
}

Isso funciona para para laços também, e é a chave para acabar com uma cláusula switch. Mais informações aqui .

break;.

while(choice!=99)
{
   cin>>choice;
   if (choice==99)
       break;
   cin>>gNum;
}

Sim, quebra vai funcionar. No entanto, você pode achar que muitos programadores preferem não usá-lo sempre que possível, em vez disso, usar uma condicional if para executar qualquer outra coisa no circuito (assim, não executá-lo e sair do loop limpa)

Algo como isso vai conseguir o que você está procurando, sem ter que usar uma ruptura.

while(choice!=99) {
    cin >> choice;
    if (choice != 99) {
        cin>>gNum;
    }
}

hmm, break?

while(choice!=99)
{
  cin>>choice;
  if (choice==99)
    exit(0);
  cin>>gNum;
}

Trust me, que irá sair do loop. Se isso não funcionar, nada vai. Mente, este pode não ser o que você quer ...

Yah Im certeza que você acabou de colocar

    break;

exatamente onde você quer que ele saia

como

    if (variable == 1)
    {
    //do something
    }
    else
    {
    //exit
    break;
    }

Tente

break;

Você nunca deve usar uma instrução break para sair de um loop. Claro que você pode fazê-lo, mas isso não significa que você deve. Ele só não é boa prática de programação. A maneira mais elegante de saída é a seguinte:

while(choice!=99)
{
    cin>>choice;
    if (choice==99)
        //exit here and don't get additional input
    else
       cin>>gNum;
}

Se a escolha é de 99 não há mais nada a fazer e os termina de loop.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top