|
Il primo dei comandi di iterazione che incontriamo è il ben noto, nel mondo della programmazione while. Il format a livello sintattico è molto semplice: while condizione { istruzioni } nel quale il blocco di istruzioni viene iterato fintantochè la condizione è verificata. Se la condizione è sempre verificata ovviamente abbiamo un ciclo infinito. Esempio semplicissimo:
che stampa 5 volte a video la stringa "ciao". Fondamentale è la riga 5 che incrementa la variabile x. Senza tale incremento l'iterazione introdotta dal while non avrebbe fine. Il valore di x alla fine sarà 5 e la variabile ancora riutilizzabile. Se proprio volete un ciclo infinito allora potete fare una cosa poco elegante come segue: while true { istruzioni da ripetere } oppure leggere il prossimo paragrafo. Anche while è una espressione ma emette come risultato un poco utile (). Il seguente esempio completa quanto finora detto:
noterete come sempre il punto e virgola alla fine della riga 6, perchè let è una assegnazione. L'output:
Corredo interessante delle iterazioni, in generale, sono le istruzioni break e continue che, rispettivamente interrompono l'esecuzione del ciclo e saltano una iterazione. Vediamo un esempio con entrambe queste istruzioni di "rottura":
che presenta questo output:
Privo del numero 2, a seguito del if che inizia alla riga 7 e che si ferma al numero 7, come previsto dal break all'interno del if che inizia alla riga 12. Non è da sottovalutare l'uso di break e continue, nei vostri programmi troverete abbastanza utili queste istruzioni. Anche while è utilizzabile nel contesto while - let. Qui l'esempio è un po' più complicato e sarà più chiaro quando avremo appreso altri concetti:
In pratica è data una sequenza (vettore) di numeri con un iteratore. L'iterazione while si muove all'interno della sequenza grazie all'iteratore stesso e se trova il numero 3 ferma l'esecuzione, diversamente espone a video il numero corrente. Non è possibile invece usare l'iterazione while con i range, che vedremo nei prossimi paragrafi cosa sono. Nel capitolo dedicato specificatamente ai range vedremo un escamotage per aggirare anche questo problema. |