Comment créez-vous une boucle de répétition jusqu'à la fin en C++? Par opposition à une boucle While ou For standard. Je dois vérifier l'état à la fin de chaque itération, plutôt qu'au début.
do
{
// whatever
} while ( !condition );
Lorsque vous souhaitez vérifier la condition au début de la boucle, annulez-la simplement sur une boucle while
standard:
while(!cond) { ... }
Si vous en avez besoin à la fin, utilisez une boucle do
... while
et annulez la condition:
do { ... } while(!cond);
Vous pouvez utiliser des macros pour simuler la syntaxe Repeat-Until.
#define repeat do
#define until(exp) while(!(exp))
Par exemple, si vous souhaitez avoir une boucle qui s’arrête après avoir compté toutes les personnes d’un groupe. Nous considérerons que la valeur X est égale au nombre de personnes du groupe et le compteur servira à compter toutes les personnes du groupe. Écrire le
tant que (! condition)
le code sera:
int x = personnes;
int counter = 0;
tandis que (x! = compteur)
{
counter ++;
}
retourne 0;
Il suffit d'utiliser:
do
{
//enter code here
} while ( !condition );
Ainsi, cela déplace votre partie "vérification de la condition" à la fin, puisque while
est à la fin. Donc, il ne vérifie que la condition après avoir exécuté le code, tout comme vous le souhaitez
Repeat est censé être une simple boucle n fois, une version sans condition d’une boucle.
#define repeat(n) for (int i = 0; i < n; i++)
repeat(10) {
//do stuff
}
vous pouvez également ajouter un supplément pour isoler encore plus la variable i
#define repeat(n) { for (int i = 0; i < n; i++)
#define endrepeat }
repeat(10) {
//do stuff
} endrepeat;
[modifier] Quelqu'un a fait part de son inquiétude à l'idée de transmettre un élément autre qu'une valeur, tel qu'une expression. il suffit de passer en boucle pour s'exécuter en arrière, ce qui entraîne l'évaluation de l'expression une seule fois
#define repeat(n) { for (int i = (n); i > 0; --i)