for
instrukcja (C++)
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. 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. 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++)
Opinia
https://aka.ms/ContentUserFeedback.
Dostępne już wkrótce: W 2024 r. będziemy stopniowo wycofywać zgłoszenia z serwisu GitHub jako mechanizm przesyłania opinii na temat zawartości i zastępować go nowym systemem opinii. Aby uzyskać więcej informacji, sprawdź:Prześlij i wyświetl opinię dla