Uwaga
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 przestaje być prawdziwy. Aby uzyskać informacje na temat instrukcji opartej for
na zakresie, zobacz Instrukcja oparta na for
zakresie (C++). Aby uzyskać informacje na temat instrukcji C++/CLIfor each
, zobacz in
for each
, .
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 zainicjowania 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 obliczane do typu całkowitoliczbowego lub typu klasy, która ma jednoznaczną konwersję na typ całkowitoliczbowy. Normalnie używane do sprawdzania kryteriów zakończenia pętli for. |
loop-expression |
Na końcu każdej iteracji elementu statement . Po loop-expression wykonaniu zostanie obliczona cond-expression wartość . |
Zwykle jest używane do zwiększania 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. Na 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 break
wykonywana 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 break
elementu , return
lub 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 cyfry 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. Na 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 /Ze
zmienna 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 /Za
wartoś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 też
Instrukcje iteracji
Słowa kluczowe
while
instrukcja (C++)
do-while
instrukcja (C++)
Instrukcja oparta na for
zakresie (C++)