Skip to content

Commit 8a618de

Browse files
authored
Merge pull request #191 from Dorin-David/Article/13-while-for
13 while for
2 parents bec50da + 31af2a2 commit 8a618de

File tree

14 files changed

+119
-120
lines changed

14 files changed

+119
-120
lines changed

1-js/02-first-steps/13-while-for/1-loop-last-value/solution.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
La risposta: `1`.
1+
La risposta è: `1`.
22

33
```js run
44
let i = 3;
@@ -15,11 +15,11 @@ Quindi, gli step del ciclo sono ("loop unrolled"):
1515
```js
1616
let i = 3;
1717

18-
alert(i--); // shows 3, decreases i to 2
18+
alert(i--); //mostra 3, decrementa i a 2
1919

20-
alert(i--) // shows 2, decreases i to 1
20+
alert(i--) // mostra 2, decrementa i a 1
2121

22-
alert(i--) // shows 1, decreases i to 0
22+
alert(i--) // mostra 1, decrementa i a 0
2323

24-
// done, while(i) check stops the loop
24+
// finito, `i` è ora 0, che convertito a booleano è falso
2525
```

1-js/02-first-steps/13-while-for/1-loop-last-value/task.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ importance: 3
44

55
# Valore all'ultimo ciclo
66

7-
Qualè l'ultimo valore stampato da alert in questo codice? Perchè?
7+
Qual è l'ultimo valore mostrato da *alert* in questo codice? Perché?
88

99
```js
1010
let i = 3;

1-js/02-first-steps/13-while-for/2-which-value-while/solution.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,9 @@ L'esercizio dimostrava come le forme prefissa/postfissa possono portare a risult
99

1010
Il primo valore è `i = 1`, perchè `++i` incrementa prima `i` e poi ritorna il nuovo valore. Quindi il primo confronto è `1 < 5` e `alert` mostra `1`.
1111

12-
Poi seguono `2, 3, 4…` -- i valori vengono mostrati uno dopo l'altro. Il confroto utilizza sempre il valose incrementato, perchè `++` è posto prima della variabile.
12+
Poi seguono `2, 3, 4…` -- i valori vengono mostrati uno dopo l'altro. Il confronto utilizza sempre il valore incrementato, perchè `++` è posto prima della variabile.
1313
14-
Ultima iterazione, `i = 4` viene incrementato a `5`, il confronto `while(5 < 5)` fallisce, e il ciclo termina. Quindi `5` non viene mostrato.
14+
Ultima iterazione, `i = 4` viene incrementato a `5`, il confronto `while(5 < 5)` risulta `false`, e il ciclo termina. `5` non viene mostrato.
1515
1616
2. **Da 1 a 5**
1717
@@ -22,10 +22,10 @@ L'esercizio dimostrava come le forme prefissa/postfissa possono portare a risult
2222
2323
Il primo valore è ancora `i = 1`. La forma postfissa `i++` incrementa `i` e ritorna il *vecchio* valore, quindi il confronto `i++ < 5` utilizza `i = 0` (a differenza di `++i < 5`).
2424
25-
La chiamata ad `alert` è separata. E' un istruzione che viene eseguita dopo l'incremento e il confronto. Quindi avra il valore `i = 1`.
25+
La chiamata ad `alert` è separata. E' un istruzione che viene eseguita dopo l'incremento di `i` e il controllo della condizione. Quindi `i = 1`.
2626
2727
Seguono `2, 3, 4…`
2828
29-
Fermiamoci a `i = 4`. La forma prefissa `++i` incrementerebbe ed utilizzerebbe `5` nel confronto. Qui però stiamo usando la forma postfissa `i++`. Quindi incrementa `i`a `5`, ma ritorna il vecchio valore. Il confronto è `while(4 < 5)` -- vero, il controllo passa alla chiamata `alert`.
29+
Fermiamoci a `i = 4`. La forma prefissa `++i` incrementerebbe ed utilizzerebbe `5` nel controllo della condizione `i < 5`. Qui però stiamo usando la forma postfissa `i++`. Quindi incrementa `i`a `5`, ma ritorna il vecchio valore. Il confronto è dunque `while(4 < 5)` -- vero; il controllo passa alla chiamata `alert`.
3030
31-
Il valore `i = 5` è l'ultimo, perchè nello step successivo avremmo `while(5 < 5)` che è falso.
31+
Il valore `i = 5` è l'ultimo, perchè nell'iterazione successiva avremmo `while(5 < 5)` e la condizione sarebbe falsa.

1-js/02-first-steps/13-while-for/2-which-value-while/task.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,11 @@ importance: 4
22

33
---
44

5-
# Quali valori mostra il ciclo while?
5+
# Quali valori mostrerà il ciclo while?
66

7-
Per ogni iterazione del ciclo, scrivi quali valori vengono mostrati e poi confrontali alla soluzione.
7+
Per ogni iterazione del ciclo, scrivi quali valori verranno mostrati e poi confrontali con la soluzione.
88

9-
Entrambi i cicli mostrano gli stessi valori in `alert`, o no?
9+
Entrambi i cicli mostreranno gli stessi valori in `alert`, o no?
1010

1111
1. La forma prefissa `++i`:
1212

1-js/02-first-steps/13-while-for/3-which-value-for/solution.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,12 +6,12 @@ for (let i = 0; i < 5; ++i) alert( i );
66
for (let i = 0; i < 5; i++) alert( i );
77
```
88

9-
Questo può eserre facilmete dedotto dall'algoritmo `for`:
9+
Questo può essere facilmente dedotto dall'algoritmo `for`:
1010

11-
1. Esegue un asola volta `i = 0` come prima cosa (begin)
11+
1. Esegue come prima cosa `i = 0` (una sola volta)
1212
2. Verifica la condizione `i < 5`
13-
3. Se è `true` -- esegue il corpo del ciclo `alert(i)`, successivamente `i++`
13+
3. Se è `true` -- esegue il corpo del ciclo, dove si trova `alert(i)`, poi incrementa `i` di 1
1414

15-
L'incremento `i++` è separato dal controllo della condizione(2). E' un istruzione differente.
15+
L'incremento `i++` è separato dal controllo della condizione(2). E' un'istruzione differente.
1616

1717
Il valore ritornato non viene utilizzato, quindi non c'è differenza tra `i++` e `++i`.

1-js/02-first-steps/13-while-for/3-which-value-for/task.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,11 @@ importance: 4
22

33
---
44

5-
# Quali valori verrano mostrati dal ciclo "for"?
5+
# Quali valori verranno mostrati dal ciclo "for"?
66

77
Per ogni ciclo scrivete quali valori verranno mostrati. Poi confrontateli con la soluzione.
88

9-
Entrambi gli `alert` mostrano gli stessi valori?
9+
I due `alert` mostreranno gli stessi valori?
1010

1111
1. Forma postfissa:
1212

1-js/02-first-steps/13-while-for/4-for-even/solution.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,4 +8,4 @@ for (let i = 2; i <= 10; i++) {
88
}
99
```
1010

11-
Utilizziamo l'operatore modulo `%` per ottenre il resto e controllare la parità.
11+
Utilizziamo l'operatore modulo `%` per controllare che un numero sia pari.

1-js/02-first-steps/13-while-for/4-for-even/task.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@ importance: 5
22

33
---
44

5-
# Stampare i numeri pari con un ciclo
5+
# Mostra i numeri pari con un ciclo 'for'
66

7-
Utilizzate il ciclo `for` per stampare i numeri pari da `2` a `10`.
7+
Utilizzate il ciclo `for` per mostrare i numeri pari da `2` a `10`.
88

99
[demo]

1-js/02-first-steps/13-while-for/5-replace-for-while/task.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ importance: 5
44

55
# Sostituisci "for" con "while"
66

7-
Riscrivi il codice cambiando il ciclo `for` con `while` senza modificare il comportamento (l'output deve rimanere lo stesso).
7+
Riscrivi il ciclo `for` utilizzando la sintassi `while`, ma senza alterarne la funzionalità (l'output deve rimanere lo stesso).
88

99
```js run
1010
for (let i = 0; i < 3; i++) {

1-js/02-first-steps/13-while-for/6-repeat-until-correct/solution.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,9 @@ do {
77
} while (num <= 100 && num);
88
```
99

10-
Il ciclo `do..while` si ripete fino a chè entrambe le condizioni non risultano vere:
10+
Il ciclo `do..while` si ripete fintanto che entrambe le condizioni non risultano vere:
1111

12-
1. Il controllo `num <= 100` -- controlla se il valore non risulta ancora maggiore di `100`.
13-
2. Il controllo `&& num` è falso quando `num` è `null` o una stringa. Quindi il ciclo `while` termina.
12+
1. Il controllo `num <= 100` -- controlla se il valore non risulti ancora maggiore di `100`.
13+
2. Il controllo `&& num` diventa falso quando `num` è `null` o una stringa. Quindi il ciclo `while` termina.
1414

15-
P.S. Se `num` è `null` allora la condizione `num <= 100` è `true`, quindi senza il secondo controllo il ciclo non terminerebbe nel caso in cui l'utente prema CANCEL. Entrambi i controlli sono necessari.
15+
P.S. Se `num` è `null` allora la condizione `num <= 100` è `true`, quindi senza la seconda condizione il ciclo non terminerebbe nel caso in cui l'utente prema CANCEL. Entrambe le condizioni sono necessarie.

0 commit comments

Comments
 (0)