Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Wykonuje instrukcję wielokrotnie, dopóki warunek nie stanie się fałszywy. Aby uzyskać informacje na temat instrukcji opartej for na zakresie, zobacz Instrukcja oparta na for zakresie (C++). Aby uzyskać informacje na temat instrukcji C++/CLI for each, zobaczfor eachin , .
Składnia
for (init-expression;cond-expression;loop-expression)
statement
Uwagi
Użyj instrukcji for , aby utworzyć pętle, które muszą wykonywać określoną liczbę razy.
Instrukcja for składa się z trzech opcjonalnych części, jak pokazano w poniższej tabeli.
dla elementów pętli
| Nazwa składni | Po wykonaniu | Opis |
|---|---|---|
init-expression |
Przed każdym innym elementem for instrukcji init-expression jest wykonywany tylko raz. Następnie kontrolka przekazuje do .cond-expression |
Często używane do inicjowania indeksów pętli. Może zawierać wyrażenia lub deklaracje. |
cond-expression |
Przed wykonaniem każdej iteracji programu statement, w tym pierwszej iteracji.
statement jest wykonywany tylko wtedy, gdy cond-expression daje wartość true (nonzero). |
Wyrażenie, które oblicza typ całkowity lub typ klasy, które ma jednoznaczną konwersję na typ całkowity. Zwykle używane do testowania kryteriów zakończenia pętli. |
loop-expression |
Na końcu każdej iteracji elementu statement. Po loop-expression wykonaniu zostanie obliczona cond-expression wartość . |
Zwykle używane do przyrostowych indeksów pętli. |
W poniższych przykładach pokazano różne sposoby używania instrukcji 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 i loop-expression może zawierać wiele instrukcji rozdzielonych przecinkami. Przykład:
#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 można zwiększać lub dekrementować albo modyfikować w inny sposób.
#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
Pętla for kończy się, gdy breakwykonywana jest pętla , zwracana lub goto (do instrukcji oznaczonej for poza pętlą).statement Instrukcja continue w for pętli kończy tylko bieżącą iterację.
Jeśli cond-expression zostanie pominięty, zostanie uznana za true, a for pętla nie zakończy się bez breakelementu , returnlub goto w obrębie statement.
Chociaż trzy pola instrukcji for są zwykle używane do inicjowania, testowanie pod kątem zakończenia i zwiększanie, nie są one ograniczone do tych zastosowań. Na przykład poniższy kod wyświetla liczby od 0 do 4. W tym przypadku statement jest to instrukcja null:
#include <iostream>
using namespace std;
int main()
{
int i;
for( i = 0; i < 5; cout << i << '\n', i++){
;
}
}
for pętle i standardowa C++
Standard C++ mówi, że zmienna zadeklarowana w for pętli wykracza poza zakres po zakończeniu for pętli. Przykład:
for (int i = 0 ; i < 5 ; i++) {
// do something
}
// i is now out of scope under /Za or /Zc:forScope
Domyślnie w obszarze /Zezmienna zadeklarowana w for pętli pozostaje w zakresie do momentu for zakończenia otaczającego zakresu pętli.
/Zc:forScope Umożliwia standardowe zachowanie zmiennych zadeklarowanych w pętlach bez konieczności określania /Zawartości .
Można również użyć różnic for określania zakresu pętli, aby ponownie deklarować zmienne w następujący /Ze sposób:
// 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++ ) {}
}
To zachowanie dokładniej naśladuje standardowe zachowanie zmiennej zadeklarowanej for w pętli, co wymaga zadeklarowania zmiennych w for pętli w celu wyjścia z zakresu po zakończeniu pętli. Gdy zmienna jest zadeklarowana w for pętli, kompilator wewnętrznie promuje ją do zmiennej lokalnej w for otaczającym zakresie pętli. Jest ona promowana nawet wtedy, gdy istnieje już zmienna lokalna o tej samej nazwie.
Zobacz także
Instrukcje iteracyjne
Słowa kluczowe
while instrukcja (C++)
do-while instrukcja (C++)
Instrukcja oparta na for zakresie (C++)