Ricerca…


Sintassi

  • for (dichiarazione, condizione, iterazione) {}
  • while (condizione) {}
  • do {} while (condizione)

Osservazioni

General Remark Se hai intenzione di creare un ciclo per aspettare che qualcosa accada, probabilmente sei sulla strada sbagliata qui. Piuttosto ricorda che tutto il codice dopo setup () viene eseguito da un metodo chiamato loop (). Quindi, se hai bisogno di aspettare qualcosa, è più facile non fare nulla (o solo altre cose indipendenti) e tornare per controllare la condizione di attesa la prossima volta.

do { } while(condition) non valuterà l'istruzione della condizione fino a dopo la prima iterazione. Questo è importante da tenere a mente se l'affermazione della condizione ha effetti collaterali.

Mentre

Un ciclo while valuterà la sua condizione e, se è true , eseguirà il codice all'interno e ricomincerà. Cioè, finché la sua condizione diventa true , il ciclo while verrà eseguito più e più volte.


Questo ciclo verrà eseguito 100 volte, aggiungendo ogni volta 1 alla variabile num :

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

Il ciclo precedente equivale a un ciclo for :

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

Questo ciclo verrà eseguito per sempre:

while (true) {
    // do something
}

Il ciclo precedente equivale a un ciclo for :

for (;;) {
    // do something
}

Per

for loop sono sintassi semplificate per un pattern di loop molto comune, che può essere realizzato su più linee con un ciclo while .

Di seguito è riportato un esempio comune di ciclo for , che verrà eseguito 100 volte e quindi interrotto.

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

Questo è equivalente a un ciclo while :

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

Puoi creare un ciclo infinito omettendo la condizione.

for (;;) {
    // do something
}

Questo è equivalente a un ciclo while :

while (true) {
    // do something
}

Fare mentre

Un ciclo do while è uguale a un ciclo while , tranne per il fatto che è garantito l'esecuzione almeno una volta.

Il seguente ciclo verrà eseguito 100 volte.

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

Un ciclo simile, ma con una condizione diversa, verrà eseguito 1 volta.

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

Se il ciclo precedente fosse semplicemente un ciclo while , verrebbe eseguito 0 volte, perché la condizione sarebbe valutata su false prima della prima iterazione. Ma poiché si tratta di un ciclo do while , viene eseguito una volta, quindi ne controlla le condizioni prima di eseguirlo di nuovo.

Controllo del flusso

Esistono alcuni modi per interrompere o modificare il flusso di un loop.

break; uscirà dal ciclo corrente e non eseguirà più righe all'interno di quel ciclo.

continue; non eseguirà più codice all'interno dell'iterazione corrente del ciclo, ma rimarrà nel ciclo.

Il seguente ciclo verrà eseguito 101 volte (i = 0, 1, ..., 100) anziché 1000, a causa dell'istruzione break :

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

Il seguente ciclo farà in modo che il valore di j sia 50 anziché 100, a causa dell'istruzione 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
Autorizzato sotto CC BY-SA 3.0
Non affiliato con Stack Overflow