Aracılığıyla paylaş


for Deyimi (C++)

Koşul yanlış olana kadar sürekli olarak bir deyimi yürütür.Aralık esaslı hesap özeti hakkında daha fazla bilgi için bkz: Range-based for Deyimi (C++).

for ( init-expression ; cond-expression ; loop-expression ) 
    statement;

Notlar

Bir for hesap özetini belirtilen sayıda yürütmeyi zorunlu olarak sağlayan döngüler oluşturmak için kullanın.

Bir for hesap özeti aşağıdaki tabloda gösterildiği gibi üç isteğe bağlı bölümden oluşur.

Döngü Öğeleri için

Söz Dizimi Adı

Yürütüldüğünde

Açıklama

init-expression

For deyiminin diğer bir öğesinden önce, yalnızca bir defa init-expression yürütülür.Denetleyin ardından cond-expression durumuna geçer.

Döngü dizinlerini başlatmak için sık kullanılır.Deyimler ya da bildirimler içerebilir.

cond-expression

statement öğesinin, ilk yineleme dahil, her yinelemesinin yürütülmesinden önce.statement, cond-expression yalnızca true (sıfırdan farklı) olarak değerlendirilse yürütülür.

Tamsayı türüne benzersiz bir dönüştürmesi olan bir integral türünü ya da sınıf türünü değerlendiren deyimdir.Genellikle döngü sonlandırma ölçütünü sınamak için kullanılır.

loop-expression

Her bir statement yinelemesinin sonunda.loop-expression yürütüldükten sonra, cond-expression değerlendirilir.

Genellikle döngü dizinlerini artırmak için kullanılır.

Aşağıdaki örnekler for deyiminin farklı kullanım yollarını göstermektedir.

#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: 012

init-expression ve loop-expression virgülle ayrılmış birden çok deyim içerebilir.Örneğin:

#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 artırabilir, azaltılabilir veya farklı yollarla değiştirilebilir.

#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

Bir for döngüsü break, return veya statement içinde goto (for döngüsü dışında etiketli deyime) yürütüldüğünde sonlandırılır.for döngüsündeki bir devam deyimi yalnızca geçerli yinelemeyi sonlandırır.

cond-expression atıldıysa, doğru olarak değerlendirilir ve for döngüsü bir break, return veya statement içinde goto olmadan sonlandırılmaz.

Bir for deyiminin üç alanı genelde başlatma için kullanılsa da, sonlandırma ve artırma için sınama bu kullanımlarla kısıtlanmamıştır.Örneğin, aşağıdaki kod numaraları 0 ile 4 arasında yazdırır.Bu durumda, statement bir null hesap deyimidir:

#include <iostream>
using namespace std;

int main()
{
    int i;
    for( i = 0; i < 5; cout << i << '\n', i++){
        ;
    }
}

Döngüler ve C++ Standartı için

C++ standartı, for döngüsü içinde bildirilen bir değişkenin for döngüsü sona erdiğinde kapsam dışına çıkabileceğini belirtir.Örneğin:

for (int i = 0 ; i < 5 ; i++) {
   // do something
}
// i is now out of scope under /Za or /Zc:forScope

Varsayılan olarak, /Ze altında, bir for döngüsünde bildirilen değişken for döngüsünün kapsayan kapsamı sona erene kadar kapsam içinde kalır.

/ZC:forScope, /Za belirtilmesine gerek olmadan döngülerde bildirilen değişkenlerin standart davranışını sağlar.

/Ze altındaki değişkenleri aşağıdaki gibi tekrar bildirmek için for döngüsünün kapsam farklarını kullanmak da mümkündür:

// 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++ ) {}
}

Bu, döngü bittikten sonra değişkenlerin kapsam dışına çıkmaları için for döngüsü içinde bildirilmelerini gerektiren for döngüsü içinde bildirilmiş değişkenlerin standart davranışlarını taklit etmeye daha yakındır.Bir değişken for döngüsü içinde bildirildiğinde, derleyici dahili olarak onu for döngüsünün kapsayan kapsamı içindeki yerel bir değişkene yükseltir (aynı ada sahip yerel bir değişken olsa bile).

Ayrıca bkz.

Başvuru

Yineleme Deyimleri (C++)

C++ Anahtar Sözcükleri

while Deyimi (C++)

do-while Deyimi (C++)

Range-based for Deyimi (C++)