Como você faz uma repetição-Until em C ++?
-
21-08-2019 - |
Pergunta
Como você faz uma repetição-Until em C ++? Ao contrário de um padrão ou Enquanto Para loop. Eu preciso verificar a condição no final de cada iteração, em vez de no início.
Solução
do
{
// whatever
} while ( !condition );
Outras dicas
Quando você quiser verificar a condição no início do laço, simplesmente negar a condição em um loop while
padrão:
while(!cond) { ... }
Se você precisar dele no final, use um do
... laço while
e negar a condição:
do { ... } while(!cond);
Você pode usar macros para simular o repeat-until sintaxe.
#define repeat do
#define until(exp) while(!(exp))
Por exemplo, se você quiser ter um loop que parou quando se tem contado todas as pessoas em um grupo. Vamos considerar o valor X para ser igual ao número de pessoas no grupo, eo contador será utilizado para contar todas as pessoas do grupo. Para escrever a
while (! Condição)
O código será:
int x = pessoas;
int contador = 0;
while (x! = Balcão)
{
Contador ++;
}
return 0;
Apenas use:
do
{
//enter code here
} while ( !condition );
Então, o que isso faz é, move-se o seu 'cheque para a condição' parte para o final, já que o while
está no fim. Por isso, só verifica a condição após a execução do código, da mesma forma como você quer que ele
Repetir é suposto ser um loop simples n vezes laço ... uma versão conditionless de um loop.
#define repeat(n) for (int i = 0; i < n; i++)
repeat(10) {
//do stuff
}
Você também pode também adicionar um barce extra para isolar a variável i ainda mais
#define repeat(n) { for (int i = 0; i < n; i++)
#define endrepeat }
repeat(10) {
//do stuff
} endrepeat;
[editar] Alguém postou uma preocupação com a passagem de um algo diferente de um valor, como uma expressão. basta mudar para repetir a correr para trás, fazendo com que a expressão a ser avaliada somente uma vez
#define repeat(n) { for (int i = (n); i > 0; --i)