Una regola empirica spesso insegnata nelle classi di programmazione e un modo generalmente utile per pensarci, è questa:
Se non sei sicuro di quante volte può essere eseguito un ciclo (potrebbe essere una volta o cento volte, come quando si cerca qualcosa in un albero), usa while()
.
Se puoi definire con precisione quante volte verrà eseguito un ciclo, ad esempio 10 volte, o su un intervallo di elementi impostato (come i primi n elementi di un elenco), utilizza for()
.
In senso stretto, non hai bisogno di cicli o while in qualsiasi lingua che ha goto
o più volte eseguito con main
metodo.
Anche i cicli
while
hanno la discutibile distinzione di essere probabilmente la fonte più comune di bug infiniti nei moderni linguaggi di programmazione e tendono ad espandere l'ambito corrente con variabili iteratore non necessarie a meno che non si usi una chiusura (e un linguaggio che supporta le chiusure, ovviamente). Per i principianti, possono essere un vero dolore.
Per i programmatori esperti, è meglio comprendere gli idiomi della lingua e ciò che ogni tipo di loop è comunemente inteso per rappresentare, e per evitare le innumerevoli preferenze personali su ogni problema se il codice è inteso in ultima analisi per le altre persone consumo.
I, all'opposto, preferisco for
e foreach
o for-range
(nelle lingue che li hanno) e devo forzarmi a usare while
loops quando sembrano più appropriati.
Non è necessario che sia una cosa religiosa: basta imparare l'uso di tutti gli elementi basilari del linguaggio e, in particolare, tutti i più fini dettagli delle strutture di controllo, e scoprirai che è il momento ben speso.