Zoeken…


Syntaxis

  • voor (verklaring, voorwaarde, iteratie) {}
  • terwijl (staat) {}
  • do {} while (staat)

Opmerkingen

General Remark Als je van plan bent een lus te maken om te wachten tot er iets gebeurt, zit je hier waarschijnlijk op het verkeerde spoor. Vergeet niet dat alle code na setup () wordt uitgevoerd vanaf een methode met de naam loop (). Dus als je ergens op moet wachten, is het het gemakkelijkst om niets te doen (of alleen andere onafhankelijke dingen) en de volgende keer terug te komen om de wachttoestand te controleren.

do { } while(condition) zal de voorwaarde-instructie pas na de eerste iteratie evalueren. Dit is belangrijk om in gedachten te houden als de toestandsverklaring bijwerkingen heeft.

Terwijl

Een while lus evalueert de toestand ervan en als deze true , wordt de code van binnen uitgevoerd en begint hij opnieuw. Dat wil zeggen, zolang de toestand ervan true , wordt de while lus steeds opnieuw uitgevoerd.


Deze lus wordt 100 keer uitgevoerd, waarbij telkens 1 wordt toegevoegd aan het variabele num :

int num = 0;
while (num < 100) {
    // do something
    num++;
}

De bovenstaande lus is gelijk aan een for lus:

for (int i = 0; i < 100; i++) {
    // do something
}

Deze lus wordt voor altijd uitgevoerd:

while (true) {
    // do something
}

De bovenstaande lus is gelijk aan een for lus:

for (;;) {
    // do something
}

Voor

for lussen zijn vereenvoudigde syntaxis voor een veel voorkomend lussenpatroon, wat in meer lijnen met een while lus kan worden bereikt.

Het volgende is een veelgebruikt voorbeeld van een for lus, die 100 keer wordt uitgevoerd en vervolgens stopt.

for (int i = 0; i < 100; i++) {
    // do something
}

Dit komt overeen met een while lus:

int num = 0;
while (num < 100) {
    // do something
    num++;
}

U kunt een eindeloze lus maken door de voorwaarde weg te laten.

for (;;) {
    // do something
}

Dit komt overeen met een while lus:

while (true) {
    // do something
}

Doen terwijl

Een do while lus is hetzelfde als een while lus, behalve dat deze gegarandeerd ten minste één keer wordt uitgevoerd.

De volgende lus wordt 100 keer uitgevoerd.

int i = 0;
do {
    i++;
} while (i < 100);

Een vergelijkbare lus, maar met een andere voorwaarde, wordt 1 keer uitgevoerd.

int i = 0;
do {
    i++;
} while (i < 0);

Als de bovenstaande lus slechts een while lus was, zou deze 0 keer worden uitgevoerd, omdat de voorwaarde vóór de eerste iteratie als false zou worden geëvalueerd. Maar omdat het een do while lus is, wordt het eenmaal uitgevoerd en wordt de toestand vervolgens gecontroleerd voordat het opnieuw wordt uitgevoerd.

Debietregeling

Er zijn enkele manieren om de stroom van een lus te onderbreken of te veranderen.

break; verlaat de huidige lus en voert geen lijnen meer uit binnen die lus.

continue; zal geen code meer uitvoeren binnen de huidige iteratie van de lus, maar blijft in de lus.

De volgende lus wordt 101 keer uitgevoerd (i = 0, 1, ..., 100) in plaats van 1000, vanwege de instructie break :

for (int i = 0; i < 1000; i++) {
    // execute this repeatedly with i = 0, 1, 2, ...
    if (i >= 100) {
        break;
    }
}

De volgende lus resulteert in de waarde van j in plaats van 100, vanwege de instructie continue :

int j=0;
for (int i = 0; i < 100; i++) {
    if (i % 2 == 0) { // if `i` is even
        continue;
    }
    j++;
}
// j has the value 50 now.


Modified text is an extract of the original Stack Overflow Documentation
Licentie onder CC BY-SA 3.0
Niet aangesloten bij Stack Overflow