Sarebbe uno spiegare questa istruzione per me: for (;;)Java: Che cosa è "for (;;)"
ho incontrato diversi tipi di questi contrassegno (come nel codice Ajax di facebook e in roba concomitante di Java).
Sarebbe uno spiegare questa istruzione per me: for (;;)Java: Che cosa è "for (;;)"
ho incontrato diversi tipi di questi contrassegno (come nel codice Ajax di facebook e in roba concomitante di Java).
Un ciclo infinito.
Ciascuna delle tre parti di un ciclo for (for(x; y; z)
) è facoltativa.
Così si può fare questo:
int i = 0;
for (; i < 20; ++i)
ed è perfettamente valido, o
for (int i = 0; i < 20;) { ++i; }
o
for (int i = 0; ; ++i) { if (i < 20) { break; } }
e sono tutti validi.
È inoltre possibile omettere tutte e tre le parti, con for(;;)
. Allora avete un ciclo che:
quindi praticamente un loop infinito. Fa semplicemente quello che dice nel corpo del loop, ancora e ancora
Vedere la Specifica della lingua Java §14.14.1.2 http://java.sun.com/docs/books/jls/third_edition/html/statements.html#14.14.1.2 per riferimento: "Se _Expression_ non è presente, oppure è presente e il valore risultante dalla sua valutazione (incluso qualsiasi possibile disimballaggio) è 'true', quindi viene eseguita l'istruzione * contenuta *." –
Questa risposta dimostra in modo evidente la grandezza della politica "Nessuna domanda è troppo semplice". :) –
È un ciclo infinito. Per la definizione dell'istruzione for
, vedere here.
Questo è un ciclo infinito, simile a
while(true)
{
...
}
sua un ciclo infinito, visto che la (inesistente) condizione di uscita non sarà mai falso.
Qualunque ciclo senza una condizione di uscita saranno infinita:
for (int x=0; ; x++) { }
Esattamente come while (true)
, anche se IMHO un po 'meno leggibile.
Questo è davvero un ciclo infinito. Ma in Java dovresti davvero preferire while (true)
su for (;;)
poiché è più leggibile (cosa che probabilmente già comprendi). Il compilatore lo ottimizzerà comunque. In JavaScript non c'è alcun mezzo per un compilatore e ogni byte su HTTP conta, questo è il motivo per cui è preferito for (;;)
. Salva alcuni caratteri (byte).
+1 per la leggibilità di 'while (true)' – whiskeysierra
Trovo 'for (;;)' per essere più leggibile. – jalf
La sintassi per un ciclo for è
for (init-stmt; condition; next-stmt) {
}
quindi è semplicemente un ciclo for con alcuna dichiarazione iniziale, successiva dichiarazione o condizione. L'assenza della condizione di uscita lo rende infinito.
#define MAI ;; per (EVER) // ... – Andrew