# JavaScript/Iterazione

JavaScript
Copertina Tutti i moduli · Sviluppo
* IntroduzioneJavaScript/Introduzione
* Il nostro primo programmaJavaScript/Il nostro primo programma
* Tipi di dati e variabiliJavaScript/Tipi di dati e variabili
* Operatori e castingJavaScript/Operatori e casting
* Le strutture di controllo
** SelezioneJavaScript/Selezione
** IterazioneJavaScript/Iterazione
* Funzioni definite dall'utenteJavaScript/Funzioni definite dall'utente
* Programmazione ad oggettiJavaScript/Oggetti
** Oggetto StringJavaScript/Oggetto String
** Oggetto MathJavaScript/Oggetto Math
** Oggetto DateJavaScript/Oggetto Date
** Oggetto ArrayJavaScript/Oggetto Array
* CookieJavaScript/Cookie
* TimerJavaScript/Timer
* L'oggetto windowJavaScript/BOM
** Gli eventi nel BOMJavaScript/Gli eventi nel BOM
** Oggetto documentJavaScript/Oggetto document
** Altri oggetti del BOMJavaScript/Altri oggetti del BOM
* Il Document Object ModelJavaScript/DOM
** Proprietà e metodiJavaScript/Proprietà e metodi del DOM
** Gli eventi nel DOMJavaScript/Gli eventi nel DOM
* Espressioni regolariJavaScript/Espressioni regolari
* AJAX
** Introduzione ad AJAXJavaScript/Introduzione ad AJAX
** Usare AJAXJavaScript/Usare AJAX
* Costruttori e prototipiJavaScript/Costruttori e prototipi
* AppendiceJavaScript/Appendice
* CreditiJavaScript/Crediti
Modifica il sommario
L'iterazione è una struttura di controllo (come la selezione) che permette l'esecuzione di una sequenza di una o più istruzioni fino al verificarsi di una data condizione.

## Cicli con condizione

La forma più semplice di ciclo è composta da una condizione valutata inizialmente e ad un blocco di istruzioni eseguito sino a quando la condizione iniziale non risulti false. In JavaScript usiamo in questo caso un ciclo while la cui sintassi è:
Quando JavaScript incontra questa struttura:
* valuta il valore booleano di condizione. Possiamo avere quindi due casi:
** se è vero, esegue il blocco di istruzioni delimitato dalle parentesi graffe e quindi ricomincia dal punto 1
** se è falso, salta al punto 2
* prosegue la lettura delle istruzioni successive
Si noti che:
* è possibile che il blocco di istruzioni non venga mai eseguito. Questo è possibile se il valore della condizione iniziale è falso già dalla sua prima valutazione
* se il blocco di istruzioni non modifica in qualche modo le variabili che intervengono nella condizione iniziale, può accadere che questo venga ripetuto all'infinito
Esiste poi la possibilità di porre la condizione alla fine del blocco di istruzioni; in questo caso si è sicuri che questo verrà eseguito almeno una volta. La sintassi è:
Vediamo alcuni esempi; miglioriamo ad esempio il piccolo programma che valutava se l'utente era maggiorenne o minorenne:
In questo modo abbiamo inserito un controllo per verificare che il valore immesso dall'utente sia un numero: la richiesta dell'età viene infatti ripetuta se il valore introdotto non è un numero.

## Cicli con contatore

JavaScript, come molti altri linguaggi programmazione, offre la funzionalità di cicli con un contatore che viene incrementato o decrementato ad ogni ripetizione. La sintassi è:
Ad esempio:
Eseguendo il codice appena visto otterremo come output dieci messaggi che indicano il valore di i ad ogni iterazione.
È possibile inoltre fare in modo che il contatore venga incrementato di più di un'unità al secondo:
Questo codice mostra sempre i primi 10 numeri pari.
Se l'operazione da eseguire è molto semplice, come nel primo esempio che abbiamo visto, è possibile anche usare una sintassi abbreviata:
L'istruzione di alert contiene infatti un operatore unario "++" applicato alla variabile contatore i; ad ogni ripetizione del ciclo, JavaScript mostra prima il messaggio di alert e poi incrementa la variabile.

## Iterare sugli elementi di un array

Per iterare in modo automatico gli elementi di un array (funzionalità trattata più avanti nel corso di questo libro), esiste un ciclo particolare, la cui sintassi è:
L'array assegna man mano ad indice i valori dell'array indicato.

## break e continue

Le istruzioni break e continue servono per alterare il normale flusso dell'esecuzione di un ciclo:
* break serve per uscire completamente dal ciclo in cui ci si trova riprendendo dalla prima riga dopo la fine del ciclo. Questo è molto utile se ad esempio si sta effettuando una ricerca tra un insieme di valori: una volta trovato il valore che ci interessa, è inutile andare avanti nel ciclo e quindi si usa break.
* continue è leggermene diverso da break. Quando viene inserito in un ciclo, interrompe la ripetizione corrente e l'esecuzione continua con il valore successivo del ciclo. Ad esempio si vogliono stampare tutti i numeri da n a m tranne quelli divisibili per 7: