Wie macht man eine Repeat-Until-Schleife in C ++?
-
21-08-2019 - |
Frage
Wie macht man ein Repeat-Until-Schleife in C ++? In Bezug auf einen Standard-Gegensatz Während oder For-Schleife. Ich brauche den Zustand am Ende jeder Iteration zu überprüfen, anstatt am Anfang.
Lösung
do
{
// whatever
} while ( !condition );
Andere Tipps
Wenn Sie den Zustand zu Beginn der Schleife überprüfen mögen, zunichte macht einfach die Bedingung auf einer Standard-while
Schleife:
while(!cond) { ... }
Wenn Sie es am Ende benötigen, verwenden Sie eine do
... while
Schleife und negiert die Bedingung:
do { ... } while(!cond);
Sie können Makros verwenden, die Repeat-bis-Syntax zu simulieren.
#define repeat do
#define until(exp) while(!(exp))
Für ein Beispiel, wenn Sie eine Schleife haben wollen, die gestoppt, wenn es alle Menschen in einer Gruppe gezählt hat. Wir werden der Wert X ist gleich die Anzahl der Personen in der Gruppe betrachten, und der Zähler wird verwendet, um alle Menschen in der Gruppe zu zählen. So schreibt die
while (! Bedingung)
wird der Code sein:
int x = Menschen;
int counter = 0;
while (x! = Zähler)
{
Zähler ++;
}
return 0;
Verwenden Sie einfach:
do
{
//enter code here
} while ( !condition );
Also, was dies tut, ist, es bewegt sich Ihren ‚Check für Zustand‘ Teil bis zum Ende, da die while
am Ende ist. So prüft er nur den Zustand, nachdem der Code ausgeführt wird, wie, wie Sie es wollen
Wiederholen Sie soll eine einfache Schleife n-mal Schleife sein ... eine bedingungslose Version einer Schleife.
#define repeat(n) for (int i = 0; i < n; i++)
repeat(10) {
//do stuff
}
Sie können auch hinzufügen, auch eine zusätzliche barce die Variable i noch mehr zu isolieren
#define repeat(n) { for (int i = 0; i < n; i++)
#define endrepeat }
repeat(10) {
//do stuff
} endrepeat;
[Bearbeiten] Jemand hat einen Besorgnis über ein etwas anderes ist als ein Wert vorbei, wie ein Ausdruck. nur in einer Schleife ändern rückwärts zu laufen, wodurch der Ausdruck nur einmal ausgewertet werden
#define repeat(n) { for (int i = (n); i > 0; --i)