È considerata una forma decente scrivere un codice come questo:
int done = 0;
for (x = 0; !done; x++) {
... something involving 'x', that might end early ...
if (!(x < max))
done = 1;
}
al contrario di dover utilizzare un ciclo while :
int done;
x = 0;
while (!done) {
... something involving 'x', that might end early ...
if (!(x < max))
done = 1;
x++;
}
o dover break di un ciclo for :
for (x = 0; x < max; x++) {
int done;
... something involving 'x', that might end early ...
if (done)
break;
}
Preferisco il primo, principalmente perché non mi piace break di out di loop, preferisco for loops e sembra ancora pulito. Il secondo mi sembra quello che gli altri probabilmente utilizzerebbero.
Il terzo mi sembra icky, ma sembrava qualcosa d'altro che altri potrebbero usare in opposizione al primo.
Quali sono i vantaggi dell'utilizzo di uno sull'altro? Dovrebbero essere usati ciascuno in momenti diversi, è generalmente corretto, o si tratta solo di preferenze personali?