Ai miei tempi C / C ++, codificando un "ciclo infinito" come
while (true)
sembrava più naturale e mi sembrava più ovvio rispetto a
for (;;)
Un incontro con PC-lint alla fine degli anni '80 e le successive discussioni sulle migliori pratiche mi hanno rotto questa abitudine. Da allora ho codificato i cicli usando l' for
istruzione di controllo. Oggi, per la prima volta da molto tempo, e forse il mio primo bisogno di un ciclo infinito come sviluppatore C #, sto affrontando la stessa situazione. Uno di loro è corretto e l'altro no?
while(true)
richiede una condizione. for(;;)
è quindi una rappresentazione migliore per cicli infiniti che si ripetono incondizionatamente. 2. I vecchi compilatori che non ottimizzano l'ottimizzazione potrebbero aver effettivamente valutato il (true)
durante il ciclo. 3. C è un linguaggio minimalista dai tempi dei telescriventi, dei terminali a 300 baud e dei nomi di variabili da 1 carattere. In un ambiente in cui ogni battuta di tasto conta, for(;;)
è un po 'più breve di while(true)
.