2009-07-02 13 views

risposta

35
do 
{ 
    // whatever 
} while (!condition); 
+3

Uhh ... Questo è abbastanza triste. Emil ha colpito la presentazione prima di quanto ho fatto ... Il "accettato" dovrebbe andare da lui ... – Adrien

+10

Hai meno rep, ed è una domanda estremamente semplice, quindi sarò lieto di dartelo. :) –

+1

Come detto jalf, però: se vuoi fare un ciclo fino al ciclo piuttosto che un ciclo while dovrai negare la condizione. –

9

Quando si vuole verificare la condizione all'inizio del ciclo, semplicemente negare la condizione su una while ciclo normale:

while(!cond) { ... } 

Se ne avete bisogno, alla fine, utilizzare un do. .. while loop e nega la condizione:

do { ... } while(!cond); 
7

Si potrebbe utilizzare le macro per simulare il repeat-fino sintassi.

#define repeat do 
#define until(exp) while(!(exp)) 
+0

Questo è esattamente quello che stavo cercando. Non sono sicuro di come funziona "exp". È un carattere jolly generico? Grazie! –

+1

@ Ace.C È un nome di argomento. Il secondo '# define' crea una macro, che agisce in modo simile a una funzione. Quindi, in questo caso, '#define until (exp)' è una macro chiamata 'until' che prende un parametro' exp', e si espande in 'while (! (Exp))'. –

+0

Grazie @ Conor.O, c'è forse un articolo o un altro post su questo argomento a cui potresti collegarmi? Sto avendo difficoltà a trovare buone risorse su come creare questi tipi di macro –

2

Per un esempio se si desidera avere un ciclo interrotto quando ha contato tutte le persone in un gruppo. Considereremo il valore X uguale al numero di persone nel gruppo e il contatore verrà utilizzato per contare tutte le persone nel gruppo. (! Condizione) di scrivere la

mentre

il codice sarà:

int x = popolo;

contatore int = 0;

mentre (x = contatore!)

{

contatore ++;

}

ritorno 0;

1

Basta usare:

do 
{ 
    //enter code here 
} while (!condition); 

Così che cosa che fa è, si muove il vostro 'verificare la condizione di' parte alla fine, dal momento che la while è alla fine. Quindi controlla solo la condizione dopo aver eseguito il codice, proprio come lo vuoi

0

La ripetizione dovrebbe essere un ciclo semplice n volte loop ... una versione senza condizioni di un loop.

#define repeat(n) for (int i = 0; i < n; i++) 

repeat(10) { 
    //do stuff 
} 

è anche possibile anche aggiungere un Barce in più per isolare la variabile i ancor più

#define repeat(n) { for (int i = 0; i < n; i++) 
#define endrepeat } 

repeat(10) { 
    //do stuff 
} endrepeat;