In C/C++, che cosa significa?Cosa significa "for (;;)"?
for(;;){
...
}
Purtroppo non riesco a Google che e ottenere risultati significativi.
In C/C++, che cosa significa?Cosa significa "for (;;)"?
for(;;){
...
}
Purtroppo non riesco a Google che e ottenere risultati significativi.
È un ciclo infinito, equivalente a while(true)
. Se non viene fornita alcuna condizione di terminazione, la condizione predefinita è true
.
Il motivo per cui si dovrebbe scrivere 'for (;;)' invece di 'while (true)' è perché alcuni compilatori emetteranno un avviso per l'espressione booleana costante in 'while (true)'. Ad esempio, Visual C++ mi dà un "avviso C4127: l'espressione condizionale è costante" con 'while (true)'. –
Ma è esattamente lo stesso in termini di funzionalità. –
@In silico: Sono anche quattro caratteri più brevi, se ti piace l'intera cosa del golf. –
Ciclo fino a quando alcune break
, exit
, throw
ecc. Istruzioni all'interno del ciclo vengono eseguite. In sostanza, si può pensare di un ciclo for
come composto da:
for (setup; test; advance)
...
Se il "test" è vuota è considerata true
, e il ciclo continua a funzionare. "Setup" e "advance" vuoti semplicemente non fanno nulla.
in C e C++ (e poche altre lingue altrettanto bene), il ciclo for
ha tre sezioni:
Ad esempio:
for (i = 1, accum = 0; i <= 10; i++)
accum += i;
si sommano i numeri da 1 a 10 compreso.
E 'grosso modo equivalente al seguente:
i = 1;
accum = 0;
while (i <= 10) {
accum += i;
i++;
}
Tuttavia, nulla impone che le sezioni in un comunicato for
realtà contengono nulla e, se la condizione di iterazione non è presente, si presume per essere vero.
Così il ciclo for(;;)
fondamentalmente solo significa:
In altre parole, è un ciclo infinito.
Ciclo infinito che continua fino a quando c'è un'istruzione break(), exit() o goto.
Il ciclo per sempre. – Swiss
Vedere anche http://stackoverflow.com/questions/4031636/questo-è-il-per-sintassi-in-questo-secondo/4031654#4031654 e http://stackoverflow.com/questions/2737550/what-does -for-mean-in-perl/2737623 # 2737623 - Non li ho contati come doppi perché sono PHP/Perl, ma sarei sorpreso se non fosse stato chiesto prima.Tuttavia, dato che non riesco a trovarne uno C, per ora sono al sicuro :-) – paxdiablo
Non pensavo che sarei stato il primo a chiedere, ma ho provato a cercare prima di chiederlo. Non ci sono parole chiave da cercare, e lo ammetto, ero un po 'pigro. – sas4740