“While” Döngüsü
for döngüsüyle 0′da 100′e kadar 10′un katları olan bütün sayıları santigrat derece kabul edip bunları fahrenayta çeviren bir program yazalim..
Kod: Kodu kopyalamak için üzerine çift tıklayın!
#include <stdio.h>
main()
{
int s;
float f;
for (s=0;s<110;s=s+10)
{
f=(s/0.55)+32;
printf("%d\t%.2f\n",s,f);
}
}
Şimdi gelelim while döngüsüne. Yine aynı örnek üzerinden while döngüsünü anlatacağım.
Aşağıdaki program for döngüsüyle aynı işi yapar.
Kod: Kodu kopyalamak için üzerine çift tıklayın!
#include <stdio.h>
main()
{
int s=0;
float f;
while (s<110)
{
f=(s/0.55)+32;
printf("%d\t%.2f\n",s,f);
s=s+10;
}
}
Gördüğünüz gibi ilk programla ikincisi arasında çok az fark var.
While komutu şu şekilde kullanılır:
Kod: Kodu kopyalamak için üzerine çift tıklayın!
while ( [koşul] )
For döngüsünden farklı olarak burada değişkenin başlangıç değerini ve döngü başa döndüğünde yapılacak işlemi yazmadık. Bu yüzden döngü ilk fahrenayt değerini hesaplamaya çalıştığında bir s değerinin olması gerekir. Bu yüzden,
Kod: Kodu kopyalamak için üzerine çift tıklayın!
int s=0;
yazarak döngüden önce ilk s değerini belirlemiş olduk. Yani değişkenin başlangıç değeri 0 olacaktır.
Döngü başa döndüğünde yapılacak işlemi de döngü sonunda belirliyoruz. Bu da,
Kod: Kodu kopyalamak için üzerine çift tıklayın!
s=s+10;
işlemidir. Burada s değeri 10 arttırılır ve yeni değer s‘ye eşitlenir.
Bütün bunları göz önüne alırsak program şu şekilde çalışır:
İlk santigrat derecemiz 0′dır (s=0). Program while satırına geldiğinde koşulu dikkate alır. Eğer koşul sağlanıyorsa döngüye girer, aksi halde girmez. İlk durumda s değeri 0 olduğu için s<100 koşulu sağlanmış olur. Döngüye girilir ve döngü içindeki işlemler sırayla yapılır. Önce santigrat dereceye karşılık gelen fahrenayt değeri hesaplanır. Daha sonra bu ekrana yazdırılır ve sonunda s değeri 10 arttırılır. Daha sonra döngü tekrar başa yani while satırına döner. Bu işlemler s=100 durumuna kadar yapılır. s=110 olduğunda ve döngü başa döndüğünde s<100 koşulu sağlanmayacağı için döngüden çıkılır ve program sonlanır..