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.

Foi útil?

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)
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top