Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial
  • Lezione 41 di 49
  • livello principiante
Indice lezioni

While

Realizzare routine che si ripetono
Realizzare routine che si ripetono
Link copiato negli appunti

Una delle caratteristiche saliente della programmazione è la possibilità di costruire delle routine che svolgano operazioni ripetitive. Se l'if, lo switch e l'operatore ternario ci consentono di prendere delle decisioni, while, do while, for e for in ci permettono invece di eseguire dei cicli di programmazione. Proprio per questo questi costrutti vengono di solito utilizzati insieme agli array: perché le istruzioni vengono eseguite di volta in volta su tutti gli elementi dell'array.

In tutti i casi si tratta di costrutti che eseguono una determinata azione, finché una certa condizione è valida.

La sintassi JavaScript corrispondente è quella che segue:

while (<condizione>) {
  //istruzioni
}

Vediamo il diagramma di flusso corrispondente a questa situazione:

  • assegno un indice a 0
  • finché è valida la condizione:
    • eseguo una determina istruzione
    • e poi aumento di uno l'indice
  • quando l'istruzione non è più valida, esco dal programma

L'indice viene aumentato scrivendo:

i=i+1;

o più sinteticamente:

i++;

Figura 1. Diagramma di flusso IV
Diagramma di flusso IV

Se volessimo scorrere un array potremmo ad esempio:

  • inizializzare un indice con 0
  • confrontare l'indice con la lunghezza dell'array
  • finché l'indice è minore della lunghezza dell'array
    • compiere una determinata azione
    • quindi aumentare l'indice di un unità
  • in caso contrario:
    • proseguire con il codice

Poniamo ad esempio di volere stampare una tabella in HTML, che contiene i nomi degli alunni e i loro voti:

<script type="text/javascript">
  alunni =new Array("Aldo","Giovanni","Giacomo","Mario","Gianni","Monica");
  voti= new Array(3,8,5,7,4,4); // a ogni nome corrisponde un voto
</script>

<table border="1">
<tr>
  <td><B>Voti</B></td>
  <td><B>Alunni</B></td>
</tr>

<script type="text/javascript">
 i=0;
 
 //inizio blocco di istruzioni
 while(i<alunni.length) {
  document.write("<tr>");

  //notare l'indice variabile
  document.write("<td>"+alunni[i]+"</td>");
  document.write("<td>"+voti[i]+"</td>");
  document.write("</tr>");

  //fine blocco di istruzioni

  i++; //aumento l'indice di 1
 }
</script>
</table>

Da notare nell'esempio che l'indice e la lunghezza dell'array sono stati confrontati ogni volta, poi sono state eseguite le istruzioni e infine aumentato l'indice. Solo quando l'indice è diventato superiore alla lunghezza dell'array siamo "usciti" dal while.

Ricordiamoci però che se scriviamo l'HTML con JavaScript, saremo poi penalizzati dai motori di ricerca (vedi la lezioni sul TAG <noscript>).

Ti consigliamo anche