for
istruzione (C++)
Esegue ripetutamente un'istruzione finché la condizione non diventa false. Per informazioni sull'istruzione basata sull'intervallofor
, vedere Istruzione basata su for
intervallo (C++). Per informazioni sull'istruzione C++/CLI for each
, vedere for each
, in
.
Sintassi
for (
init-expression
;
cond-expression
;
loop-expression
)
statement
Osservazioni:
Usare l'istruzione for
per costruire cicli che devono eseguire un numero specificato di volte.
L'istruzione for
è costituita da tre parti facoltative, come illustrato nella tabella seguente.
elementi ciclo for
Nome sintassi | Quando viene eseguito | Descrizione |
---|---|---|
init-expression |
Prima di qualsiasi altro elemento dell'istruzione for , init-expression viene eseguito una sola volta. Il controllo passa a cond-expression . |
Spesso utilizzato per inizializzare gli indici del ciclo. Può contenere espressioni o dichiarazioni. |
cond-expression |
Prima dell'esecuzione di ogni iterazione di statement , inclusa la prima iterazione. statement viene eseguito solo se cond-expression restituisce true (diverso da zero). |
Un'espressione che restituisce un tipo di classe o un tipo integrale con una conversione non ambigua a un tipo integrale. Normalmente utilizzato per verificare i criteri di terminazione del ciclo For. |
loop-expression |
Alla fine di ogni iterazione di statement . Dopo l'esecuzione di loop-expression , viene valutato cond-expression . |
Normalmente utilizzato per incrementare gli indici del ciclo. |
Gli esempi seguenti illustrano diversi modi per usare l'istruzione for
.
#include <iostream>
using namespace std;
int main() {
// The counter variable can be declared in the init-expression.
for (int i = 0; i < 2; i++ ){
cout << i;
}
// Output: 01
// The counter variable can be declared outside the for loop.
int i;
for (i = 0; i < 2; i++){
cout << i;
}
// Output: 01
// These for loops are the equivalent of a while loop.
i = 0;
while (i < 2){
cout << i++;
}
// Output: 01
}
init-expression
e loop-expression
possono contenere più istruzioni separate da virgole. Ad esempio:
#include <iostream>
using namespace std;
int main(){
int i, j;
for ( i = 5, j = 10 ; i + j < 20; i++, j++ ) {
cout << "i + j = " << (i + j) << '\n';
}
}
/* Output:
i + j = 15
i + j = 17
i + j = 19
*/
loop-expression
può essere incrementato o ridotto oppure modificato in altri modi.
#include <iostream>
using namespace std;
int main(){
for (int i = 10; i > 0; i--) {
cout << i << ' ';
}
// Output: 10 9 8 7 6 5 4 3 2 1
for (int i = 10; i < 20; i = i+2) {
cout << i << ' ';
}
}
// Output: 10 12 14 16 18
Un for
ciclo termina quando viene eseguita un'istruzione break
, restituita o goto
(a un'istruzione etichettata all'esterno statement
del for
ciclo). Un'istruzione continue
in un for
ciclo termina solo l'iterazione corrente.
Se cond-expression
viene omesso, viene considerato true
e il for
ciclo non terminerà senza , break
return
o goto
all'interno statement
di .
Anche se i tre campi dell'istruzione vengono normalmente usati per l'inizializzazione, i test per la for
terminazione e l'incremento, non sono limitati a questi usi. Ad esempio, il codice seguente consente di stampare i numeri da 0 a 4. In questo caso, statement
è l'istruzione Null:
#include <iostream>
using namespace std;
int main()
{
int i;
for( i = 0; i < 5; cout << i << '\n', i++){
;
}
}
for
cicli e standard C++
Lo standard C++ indica che una variabile dichiarata in un for
ciclo esce dall'ambito al termine del for
ciclo. Ad esempio:
for (int i = 0 ; i < 5 ; i++) {
// do something
}
// i is now out of scope under /Za or /Zc:forScope
Per impostazione predefinita, in /Ze
una variabile dichiarata in un for
ciclo rimane nell'ambito fino al for
termine dell'ambito di inclusione del ciclo.
/Zc:forScope
abilita il comportamento standard delle variabili dichiarate in per i cicli senza dover specificare /Za
.
È anche possibile usare le differenze di ambito del for
ciclo per rideclare le variabili in /Ze
come indicato di seguito:
// for_statement5.cpp
int main(){
int i = 0; // hidden by var with same name declared in for loop
for ( int i = 0 ; i < 3; i++ ) {}
for ( int i = 0 ; i < 3; i++ ) {}
}
Questo comportamento simula più da vicino il comportamento standard di una variabile dichiarata in un for
ciclo, che richiede che le variabili dichiarate in un for
ciclo escino dall'ambito al termine del ciclo. Quando una variabile viene dichiarata in un for
ciclo, il compilatore lo promuove internamente a una variabile locale nell'ambito for
di inclusione del ciclo. Viene alzata di livello anche se è già presente una variabile locale con lo stesso nome.
Vedi anche
Istruzioni di iterazione
Parole chiave
while
istruzione (C++)
do-while
istruzione (C++)
Istruzione basata su for
intervallo (C++)
Commenti e suggerimenti
https://aka.ms/ContentUserFeedback.
Presto disponibile: Nel corso del 2024 verranno gradualmente disattivati i problemi di GitHub come meccanismo di feedback per il contenuto e ciò verrà sostituito con un nuovo sistema di feedback. Per altre informazioni, vedereInvia e visualizza il feedback per