saída imediata do loop 'while' em C ++ [fechado]
-
22-08-2019 - |
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?
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.