C++ ile ilgili makalelerimize, yeni bir konu ile devam ediyoruz. Bu makalemizde ele alacağımız konu başlıkları ise Continue Komutu, Break Komutu, For Döngüsü, Do - while Döngüsü olarak özetlenebilir. Ayrıca 31 adet örnek çalışma içeren dosyamız da bu konuda sizlere sunulmuştur.
Do - while Döngüsü:
Bu döngü while döngüsünün biraz değiştirilmiş halidir. Do-while döngüsünde karşılaştırma işlemi, döngünün sonunda gerçekleşir. Bunun sonucu olarak döngünün içine en az bir defa girilmiş olur. Yapısı aşağıdaki gibidir.
do cümle while ( koşul );
do' nun altındaki cümle kısmındaki komut satırları birden fazla olursa diğer döngülerde olduğu gibi " { } " içine alıyoruz. Bunu kullanmamız kodları okuma da ve ayırma da daha çok işimize yarayacaktır.
do { cümle cümle cümle ... } while ( koşul );
Şimdi yukarıda demek istediğimizi standart kod satırı üzerinde anlatalım. Kodları yazdığımızda, komut sırası do'ya geldiği zaman, do' dan sonraki komutun döngünün başı olduğunu belirtiyor.
Diğerlerinden farklı ( for, While ) olarak döngüye giriş yapıyor, yani hiçbir kontrol yapmadan en az bir defa döngünün içine girmiş oluyoruz. While'e geldiğinde ise koşulu kontrol ediyor, eğer doğru ise döngünün başındaki komuta giderek yeniden komutları işliyor. Eğer koşul kontrolü yanlış ise while'den bir sonra ki komutu veya komutları işleyip döngüden çıkıyor. Şimdi bu söylediklerimizi örnek üzerinde gösterelim.
//do.cpp // number echoer //do-while döngüsünü kullandık #include int main () { unsigned long x; do { cout<< "Bir sayı giriniz ( Durdurmak için 0 ) : "; cin>> x; cout<< "Girdiğiniz sayı: " << x << "\n"; } while (x != 0); return 0; }
Örneğimizde de görüldüğü gibi önce do dan sonraki komutlar işleniyor. Şayet 0 girersek while işlemeye başlıyor. Do-while döngüsü C++ da çok fazla kullanılmaz bunun yerine biz for' u kullanacağız çünkü for döngüsü çok daha güçlüdür.
For Döngüsü
For döngüsünün çalışması, döngünün kontrol değişkenine başlangıç değerinin atanması ile başlar. Aşağıda vereceğimiz ilk değer atama cümlesinden kastımızda budur. Yani bu kısımda başlangıç tanımları yapılır.
For döngüsünün başlangıç adımıdır. Bu kısımda yapılan bir değişken tanımındaki değişkenin ömrü, for döngüsünün sonunda biter. Sonra döngü koşul kısmına gelinir ve bu test edilir. Şayet değeri !0, doğru (1) olduğunda döngü içindeki komutlar uygulanır. Arttırma ise for döngüsü işleminin sonunda meydana gelir. for içindeki tüm deyimler meydana geldikten sonra uygulanır.
Genel yapısı: for ( ilk değer atamalar, koşul, arttırma) cümle
Bunu daha da genellersek, diğerlerinde de olduğu gibi cümleler birden fazla olduğunda komut bloğu arasına alınacaktır.
for ( ilk değer atamalar, koşul, arttırma) { cümle1 cümle2 cümle3 ... }
Bu söylediklerimizi bir örnek üzerinde izah edelim.
//for.cpp // for döngüsüyle bir örnek. #include int main () { for (int n=10; n> 0; n--) { cout << n << " -> "; } cout<< "Bitti!"; return 0; }
Ben sadece for (int n=10; n>0; n--) kısmı anlatacağım, diğer kısımlar apaçık gözüküyor zaten. For diyip () imizi açtık. Sonra içine ilk basamağımız olan değişken tanımlamamızı yaptık. İnt n=10; Bu bizim yukarıda bahsettiğimiz ilk değer atamalar kısmı. Daha sonra koşulumuzu yazdık. n>0; bunu test ettik ve !0 yani doğru (1) çıktı. Sonrada n-- yi yazdık. Genel tanımda yazdığımız arttırma kısmı. Aslında buna yenileme komutları desek daha doğru olur. Biz bu örnekte örneğin azaltma yaptık. Neyse umarım bu for örneğini anlamışsınızdır.
C++ da yapacağımız çoğu örnekte for u kullanacağız. C++ 'nın en güçlü yanlarından biriside for döngüsüdür. For döngüsünün başında yani ilk değer atama kısmında birden çok değişken tanımlayıp değer atıyorsak bunları virgül ( , ) ile bir birinden ayırmalıyız. İlk değer atamadan koşul bölümüne geçtiğimizde ve koşul bölümünden arttırma ya geçerken noktalı virgül ( ; ) kullanmalıyız. Tabi kullandığımız bu üç kısım seçimlidir istersek boş bırakabiliriz. Fakat, noktalı virgüller ( ; ) konulması zorunludur.
1.Örneğimiz: //factoriyel_for.cpp //for döngüsüyle faktöriyel hesap. #include int main() { int fac, sayi; cout<<"Sayıyı giriniz: "; cin>>sayi; fac=1; for (int j=1; j<=sayi; j++) { fac=fac*j; } cout<<"Sonuc: \a"<< fac; return 0; }
Bu örneğimiz oldukça basit. Bildiğimiz matematiksel faktöriyel işlemini C++ kodları olarak yazdık. (\a yı kullandım bip! demesi için:) ).
2.Örneğimiz: //carpim_for.cpp // iç içe for döngüsüyle çarpım tablosu #include main() { cout<<"Çarpım Tablosu! \n"< int x,y; for (x=1; x<=10; x++) { for (y =1; y<=10; y++) cout<<" "< cout<<"\n"; } }
Görüldüğü gibi ilk for döngüsünde, birinci bileşen olan x i önce 1 e eşitledik sonra birer arttırarak 10' a kadar götürdük. Sonraki for da da aynısını y için yaptık ve bu iki bileşeni çarparak ekrana yazdırdık. Son derece basit bir örnek.
3.Örneğimiz: //asal_for.cpp // for , if ve while ile asal sayı bulma #include int main() { int sayi; cout << "Bir sayı girinizr: "; cin >> sayi; for (int sayac=1; sayac< sayi; sayac++) { int asal, test; test = sayac; asal = 1; while (test--> 2) if ((sayac % test) == 0) asal = 0; if (asal == 1) cout<< sayac << " bir asal sayıdır!\n"; } return 0; }
Bu örneğimizde ikinci örneğimize benziyor. İçinde for, while ve if de var. While ve if' in içindeki matematiksel ifadeleri biliyorsak örnek gayet basit gelecektir.
Break Komutu
Break komutunu, swtich komutundan çıkmak için önceki derslerimizde görmüştük. Komutun kendine özgü bir kullanımı daha vardır. Break komutu bir döngünün içinde çalıştırılırsa o an o döngü biter. Bir goto gibi işlem gördüğünü de söyleyebiliriz. Break kullanınca Program döngüyü bitirir ve döngünün sonundaki satırdan çalışmaya devam eder. Bir örnek verelim.
//break.cpp //break komutunu kullandik. #include main() { for (int x = 1; x <= 10; x++) { if (x == 7) { break; } cout<< x << " "; } }
İşte örneğimizde gördüğünüz gibi. X 7'ye eşit olunca break; döngüyü bitiriyor ve döngüden sonraki satırı çalıştırmaya başlıyor.
Continue Komutu
Continue komutu bir döngü içinde çalıştırılırsa , o döngü içinde bulunan tur sona erer ancak döngü devam eder. Diğer bir deyişle, gövdenin içinde bulunan continue komutundan sonra gelen cümleleri atlayarak, döngüyü devam ettirir. Bunu bir örnekle açıklayayım.
//continue.cpp //continue ve break komutunu kullandik. #include main() { for(int i=0; i <= 9; i++) { if(i==5) break; cout<<< endl; } for(int x=0; x <= 9; x++) { if(x ==3) continue; cout<< x; } }
Bu örnekte break ve continue'yu birlikte kullandım. Hem continue'yu hem de break ve continue karışımını bir arada vermiş oluruz diye düşünüyorum.
Örneğimizi inceleyecek olursak. Break olan kısımda görüleceği gibi 5'e kadar döngü devam ediyor, döngü bitiyor ve ondan sonraki cümleye geçiliyor. Sonra yine bir for döngüsü başlıyor ve bu sefer x 3' e eşit olana kadar devam ediyor. 3'e eşit olunca da if içindeki x==3 koşulunu sınıyor ve continue ye olduğu için bunu atlıyor. Zaten ekran çıktısını aldığınızda ne demek istediğimi daha rahat anlayacaksınız. Faruk Alkaya Selçuk Üniversitesi - Teknik Eğitim Fakültesi
Bir sonraki makale konumuz "Fonksiyonlar" dır. C++ ile ilgili 31 adet örnek çalışmayı Program Arşivimizden indirebilirsiniz. |
Yazar Okuyucu açık 2006-12-06 21:20:08 daha açıklayıcı olabilirsiniz örneğin do-while konusunda |
Powered by AkoComment 2.0! |