3.3 KiB
id, title, challengeType, videoUrl, forumTopicId, dashedName
id | title | challengeType | videoUrl | forumTopicId | dashedName |
---|---|---|---|---|---|
5a2efd662fb457916e1fe604 | Iterare con i cicli Do...While in Javascript | 1 | https://scrimba.com/c/cDqWGcp | 301172 | iterate-with-javascript-do---while-loops |
--description--
Il prossimo tipo di ciclo che vedremo si chiama do...while
. Si chiama ciclo do... while
perché prima eseguirà (do
) un passaggio del codice all'interno del ciclo indipendentemente dalle condizioni, e poi continuerà ad eseguire il ciclo finché (while
) la condizione specificata avrà valore true
.
const ourArray = [];
let i = 0;
do {
ourArray.push(i);
i++;
} while (i < 5);
L'esempio sopra si comporta come altri tipi di cicli, e l'array risultante sarà [0, 1, 2, 3, 4]
. Tuttavia, ciò che rende il do...while
diverso da altri cicli è come si comporta quando la condizione fallisce al primo controllo. Vediamolo in azione: ecco un normale ciclo while
che eseguirà il codice nel ciclo finché i < 5
:
const ourArray = [];
let i = 5;
while (i < 5) {
ourArray.push(i);
i++;
}
In questo esempio, inizializziamo il valore di ourArray
a un array vuoto e il valore di i
a 5. Quando eseguiamo il ciclo while
, la condizione vale false
perché i
non è inferiore a 5, e in questo modo non eseguiremo il codice all'interno del ciclo. Il risultato è che ourArray
finirà per non avere valori aggiunti, e sarà ancora simile a []
quando tutto il codice nell'esempio precedente sarà stato completato. Ora, dai un'occhiata a un ciclo do...while
:
const ourArray = [];
let i = 5;
do {
ourArray.push(i);
i++;
} while (i < 5);
In questo caso, inizializziamo il valore di i
a 5, proprio come abbiamo fatto con il ciclo while
. Quando arriviamo alla linea successiva, non c'è alcuna condizione da valutare, così passiamo al codice all'interno delle parentesi graffe e lo eseguiamo. Aggiungeremo un singolo elemento all'array e quindi incrementeremo i
prima di arrivare al controllo delle condizioni. Quando finalmente valutiamo la condizione i < 5
sull'ultima riga, vediamo che i
è ora 6, che fallisce il controllo condizionale, quindi usciamo dal ciclo e terminiamo l'esecuzione. Alla fine dell'esempio visto sopra, il valore di ourArray
è [5]
. Essenzialmente, un ciclo do...while
assicura che il codice all'interno del ciclo venga eseguito almeno una volta. Proviamo ad ottenere un ciclo do...while
che ci permetta di inserire dei valori in un array.
--instructions--
Cambia il ciclo while
nel codice con un ciclo do...while
in modo che il ciclo inserisca solo il numero 10
in myArray
, e i
sia uguale a 11
una volta che il codice sarà terminato.
--hints--
Dovresti usare un ciclo do...while
per questo esercizio.
assert(code.match(/do/g));
myArray
dovrebbe essere uguale a [10]
.
assert.deepEqual(myArray, [10]);
i
dovrebbe essere uguale a 11
assert.equal(i, 11);
--seed--
--after-user-code--
if(typeof myArray !== "undefined"){(function(){return myArray;})();}
--seed-contents--
// Setup
const myArray = [];
let i = 10;
// Only change code below this line
while (i < 5) {
myArray.push(i);
i++;
}
--solutions--
const myArray = [];
let i = 10;
do {
myArray.push(i);
i++;
} while (i < 5)