Döngü Komutları
Döngü Komutları
While Komutu
While döngüsünde yer lan komutlar koşul ifadesi döndürdüğü sürece tekrar edilir. Koşul ifadesi false döndürdüğünde döngü biter ve program döngüden sonraki komutla devam eder.
Aşağıdaki örnekte daha net incelene bilmektedir.
#include<iostream> using namespace std; int main() { int sayi; cout<<“Pozitif bir sayi giriniz: “; cin>>sayi; // Kullanıcının girdiği sayı okunur. while(sayi<=0) //Sayınegatif veya sıfır mı? cin>>sayi; //Sayı negatif olduğu için bir daha okunur cout<<“Girdiginiz son sayi: “<<sayi<<endl; return 0; }
Tüm seçme komutlarında olduğu gibi blok ( { } ) kullanılmadığı zaman seçme komutları ve döngülerin koşulları kendinden sonraki ilk komutu sağlar. Yukarıdaki örnekte sadece cin komutu while koşuluna bağlanmış
#include <iostream> using namespace std; int main() { /*Sonsuz Döngü*/ int i=10; while (i>10) { cout<<“i=”<<i<<endl; i++; } return 0; }
i sayısı 10’dan sürekli büyük olacağından i sayısını sürekli aratarak ekrana yazdıracaktır, koşulun aksi bir durum oluşmamış ve while döngüsü sürekli true‘de kalmaktadır.
Do While Komutu
Do-while döngüsünde yer alan komutlar aynı while komutunda olduğu gibi koşul ifadesi true döndüğü sürece tekrar edilir.
while komutundan farkı komut gerçekleştirilir, koşul daha sonra kontrol edilir.
#include>iostream> using namespace std; int main() { int sayi; cout<<“Pozitif bir sayi giriniz: “; cin>>sayi; // Kullanıcının girdiği sayı okunur. do cin>>sayi; while(sayi<=0) ; //Sayınegatif veya sıfır mı? cout<<“Girdiginiz son sayi: “<<sayi<<endl; return 0; }
Görüleceği üzere ilk önce şartsız kullanıcıdan veri alındı, koşul daha sonra kontrol edilmiştir. Do–while komutunda dikkat edilmesi gereken bir husus while den sonra ( ; ) konulması unutulmamalıdır.
For Komutu
For komutu döngünün kaç kere döneceği belli olan döngüleri yazarken tercih edilir.
Kullanımı:
for ( ilkDegerAtama; kosul; güncelleme)
komut
Değişken tanımları if ve while komutlarının koşul ifadesi hariç programın herhangi bir yerinde tanımlanabilir.
for ( int i=1; i<10; i++)…. // for da böyle bir tanımla vardır
if ( int z>4 )… // Hata böyle bir tanımlama yoktur
#include<iostream> using namespace std; int main() { int sinavNot,enYuksek=0; for ( int sayi=1; sayi<=3; sayi++;) { cout<<“Ogrenci notunu giriniz: “; cin>>sinavNot; if (sinavNot>enYuksek) enYuksek=sinavNot; } cout<<“En yuksek not: “<<enYuksek<<endl; return 0; }
for döngüsünde aşağıdaki örnekte görüldüğü gibi ilk atama ve güncelleme komutlarında birden fazla komuta yer verebiliriz.
Break ve Continue Komutları
#include<iostream> using namespace std; int main() { for ( int i=1; i<=10; i++) { if (i==5) break; cout<<i; } cout<<“Dongu bitti”; return 0; } /* Çıktı: 1 2 3 4*/
10 kadar olan sayılarda 4 de kadar olan sayıları yazdı 5 gelince döngüden çıktı.
continue komutu ise döngüde geri kalan komutları yapmadan bir sonraki dönüşe atlar.
#include<iostream> using namespace std; int main() { for ( int i=1; i<=10; i++) { if (i==5) continue; cout<<i; } cout<<“Dongu bitti “; return 0; } /* Çıktı: 1 2 3 4 5 7 8 9 10*/
10 kadar olan sayıların hepsi yazdı fakat 5’i atladı break‘ten farkı break 5 te döngüden çıktı continue 5 ‘iatladı devam etti.
İç İçe Döngü
Daha önce örneğini gördüğümüz iç içe döngülere bir örnekte burada verelim.
#include<iostream> using namespace std; int main() { char harf; int sayi; cout<<“Noktayla biten 2 cumleyi giriniz.”<<endl; for ( int i; i<=2; i++)// Döngü satırlar için 2 kere döner { sayi=0; cin>>harf; //Harf okunur while (harf!=’.’) // İç döngü okunana kadar döner { if ((harf==’A’)||(harf==’a’)) // Harf A veya a ise sayi++; // A sayisi arttırlır cin>>harf; // Harf okunur } cout<<i<<“.cumlede “<<sayi<<” tane A harfi var. “<<endl; } return 0; }