Oppure

Loading
25/03/16 11:31
Ah ... io mi riferivo al caso specifico di ciclo infinito indicato nel thread ... preferivo la while in "questo" caso.

Tuttavia anche negli altri casi, la cosa è opinabile perché possono intervenire tanti fattori ... ad esempio

for (int i=0; i<k; i++) 
{
     step(); 
     i--; // incluso chissà dove nel ciclo ...
}


oppure puoi scrivere la while meglio ...

int i=0; 
while (i++<k)
   step();     
25/03/16 12:38
TheDarkJuster
Sono d'accordo sul fatto che la while si possa scrivere in maniera più o meno compatta, però molti quando vedono un ciclo for si aspettano una cosa abbastanza "standard": niente modifiche del contatore all'interno del ciclo e che il ciclo sia relativamente facile da capire.

Credo sia anche lo spirito con cui sia stato concepito il for.......

Ovviamente per un ciclo ripetuto un numero finito di volte nulla è meglio di:
i.times() {
    //......
}

ma è consentito da un numero piuttosto limitato di lunguaggi.
aaa
25/03/16 16:15
Template
Personalmente, vedo - per intendeci - il for come "esegui questo partendo da queste condizioni finchè non raggiungi queste altre" e il while come "fai questo finchè non succede questo": di fatto, il senso è lo stesso, ma a seconda di come si costruisce la "frase" (ad esempio, a volte può risultare più comodo esplicitare le condizioni iniziali ben prima di arrivare al ciclo vero e proprio) un costrutto può risultare più leggibile dell'altro.
aaa
29/03/16 14:09
lumo
Come nota, l'ambiguità tra while e for è stata portata all'estremo in go dove il while non esiste e il for fa tutto:
while (true) {
   ...
}
diventa
for {
}

invece
while (condizione) {
  ...
}
diventa
for condizione {
}

Ultima modifica effettuata da lumo 29/03/16 14:09
aaa