21 while do … while strutture iterative

Pensate di dover leggere le righe da un file, come facciamo a priori a sapere quante righe ci sono (e quindi quante istruzioni dobbiamo scrivere) dobbiamo leggere tutto?

Fortunatamente no, esiste la struttura iterativa, che itera fino a tanto che una condizione diventa falsa (comunemente chiamati cicli).

Vengono chiamati anche cici con uscita per falso.

Abbiamo 2 tipi di cicli:

  • Quelli con la condizione in testa
    in questo caso se la condizione è falsa il codice non viene ripetuto nemmeno una volta
  • Quelli con la condizione in coda
    almeno una volta il codice viene eseguito

Ecco un esempio con il while, classico esempio di controllo in testa

var contatore = 0;
while (contatore<10)
{
    document.write("ciao<br />");
    contatore = contatore + 1;
}

Nel while il contatore viene inizializzato prima del ciclo. Viene inizializzato a zero (ma si può partire da qualsiasi valore). La condizione è contatore minore di 10.

Il codice che verrà eseguito è

document.write("ciao<br />");

che scrive (metodo write) sulla nostra pagina la stringa ciao e un <br /> che manda a capo

contatore = contatore + 1;

aumenta di 1 il valore della variabile contatore. Essendo molto frequente questo tipo di incremento si è deciso di creare la stessa forma

contatore+=1;

Utile se l’incremento deve essere fatta di più unità. Quella più diffusa e utilizzata maggiormente per l’incremento di 1 è:

contatore++;

do while

Questa struttura fa parte della seconda categoria dove la condizione viene messa in coda e il codice viene eseguito almeno una volta .

var contatore = 0;
do
{
    document.write("ciao<br />");
    contatore++;
}
while (contatore<10);

L’istruzione viene eseguita sicuramente almeno una volta. Con il comando do dico: esegui l’istruzione, fin tanto che (while) la condizione non è soddisfatta (contatore minore di 10).

aggiungo nella parte del document.write l’ interpolazione dele variabili :

document.write(`${contatore} ciao<br>`);

Da notare l’accento grave (che con pc corrisponde al codice ASCII 96 o ALT 96 mentre col Mac OS e OSX la combinazione è ALT 9 ), l’ interpolazione delle variabili ( ${contatore} )  che è il riconoscimento automatico, all’interno di una stringa, di un qualcosa che sta a rappresentare un segnaposto di espressioni. L’espressione tra le graffe, in questo caso, è solo il riferimento al contatore, ma potevo inserire qualsiasi espressione che sarebbe stata inserita nella stringa prima di ciao.

Anzi per una variabile possiamo in effetti renderlo più semplice

document.write(contatore + " ciao<br>");