C++ For
Döngüsü
FOR DÖNGÜSÜ
For döngüsünün çalismasi, döngünün kontrol degiskenine baslangiç
degerinin atanmasi ile baslar. Asagida verecegimiz ilk deger atama
cümlesinden kastimizda budur. Yani bu kisimda baslangiç tanimlari
yapilir. For döngüsünün baslangiç adimidir. Bu kisimda yapilan bir
degisken tanimindaki degiskenin ömrü, for döngüsünün sonunda biter.
Sonra döngü kosul kismina gelinir ve bu test edilir. Sayet degeri
!0, dogru (1) oldugunda döngü içindeki komutlar uygulanir. Arttirma
ise for döngüsü isleminin sonunda meydana gelir. for içindeki tüm
deyimler meydana geldikten sonra uygulanir.
Genel yapisi:
for ( ilk deger atamalar, kosul, arttirma)
cümle
Bunu daha da genellersek, digerlerinde de oldugu gibi cümleler
birden fazla oldugunda komut blogu arasina alinacaktir.
for ( ilk deger atamalar, kosul, arttirma)
{
cümle1
cümle2
cümle3
...
}
Bu söylediklerimizi bir örnek üzerinde izah edelim.
//for.cpp
// for döngüsüyle bir örnek.
#include <iostream.h>
int main ()
{
for (int n=10; n> 0; n--)
{
cout << n << " -> ";
}
cout<< "Bitti!";
return 0;
}
Ben sadece for (int n=10; n>0; n--) bu kismi anlatacagim, diger
kisimlar apaçik gözüküyor zaten. For diyip () imizi açtik. Sonra
içine ilk basamagimiz olan degisken tanimlamamizi yaptik. Int n=10;
Bu bizim yukarida bahsettigimiz ilk deger atamalar kismi. Daha sonra
kosulumuzu yazdik. n>0; bunu test ettik ve !0 yani dogru (1) çikti.
Sonrada n-- yi yazdik. Genel tanimda yazdigimiz arttirma kismi.
Aslinda buna yenileme komutlari desek daha dogru olur. Biz bu
örnekte örnegin azaltma yaptik. Neyse umarim bu for örnegini
anlamissinizdir.
C++ da yapacagimiz çogu örnekte for u kullanacagiz. C++ ''nin en
güçlü yanlarindan biriside for döngüsüdür. For döngüsünün basinda
yani ilk deger atama kisminda birden çok degisken tanimlayip deger
atiyorsak bunlari virgül ( , ) ile bir birinden ayirmaliyiz. Ilk
deger atamadan kosul bölümüne geçtigimizde ve kosul bölümünden
arttirma ya geçerken noktali virgül ( ; ) kullanmaliyiz. Tabi
kullandigimiz bu üç kisim seçimlidir istersek bos birakabiliriz.
Fakat, noktali virgüller ( ; ) konulmasi zorunludur.
1.Örnegimiz:
//factoriyel_for.cpp
//for döngüsüyle faktöriyel hesap.
#include <iostream.h>
int main()
{
int fac, sayi;
cout<<"Sayiyi giriniz: ";
cin>>sayi;
fac=1;
for (int j=1; j<=sayi; j++)
{
fac=fac*j;
}
cout<<"Sonuc: \a"<< fac;
return 0;
}
Bu örnegimiz oldukça basit. Bildigimiz matematiksel faktöriyel
islemini C++ kodlari olarak yazdik. (\a yi kullandim bip! demesi
için:) ).
2.Örnegimiz:
//carpim_for.cpp
// iç içe for döngüsüyle çarpim tablosu
#include <iostream.h>
main()
{
cout<<"Çarpim Tablosu! \n"<<endl;
int x,y;
for (x=1; x<=10; x++)
{
for (y =1; y<=10; y++)
cout<<" "<<x*y;
cout<<"\n";
}
}
Görüldügü gibi ilk for döngüsünde, birinci bilesen olan x i önce 1 e
esitledik sonra birer arttirarak 10'' a kadar götürdük. Sonraki for
da da aynisini y için yaptik ve bu iki bileseni çarparak ekrana
yazdirdik. Son derece basit bir örnek.
3.Örnegimiz:
//asal_for.cpp
// for , if ve while ile asal sayi bulma
#include <iostream.h>
int main()
{
int sayi;
cout << "Bir sayi 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 sayidir!\n";
}
return 0;
}
Bu örnegimizde ikinci örnegimize benziyor. Içinde for, while ve if
de var. While ve if'' in içindeki matematiksel ifadeleri biliyorsak
örnek gayet basit gelicektir. Burada birakmak istiyorum. Bir sonraki
ders görüsmek üzere.
|