|
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 <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 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 <iostream.h>
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 <iostream.h>
main()
{
cout<<"Çarpım 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üğü 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 <iostream.h>
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 gelicektir.
Burada bırakmak istiyorum. Bir sonraki ders görüşmek üzere.
|