Yazılan şart sağlandığı süre boyunca içindeki komutları çalıştıran döngü çeşitidir. Kullanım şekli;
while (koşul)
{
komut 1
komut 2
...
}
Yukarıdaki örnekte koşul kısmı doğru (true) olduğu sürece döngü içindeki komutları sürekli tekrar tekrar işleyecektir. “koşul” un yanlış (false) olması durumunda döngüden çıkıp döngüden sonraki komutları işlemeye geçecektir.
Örnek1 : Aşağıdaki örnekte döngü, i değişkeni 10’dan küçük olduğu sürece içindeki komutları işlemeye devam edecektir. i değişkeni 0 olduğu için döngü sürekli dönecektir (istenmeyen durum).
i=0;
while (i<10)
{
}
Bu yüzden i değişkenin belli bir süre sonra (ihtiyacımıza göre) değiştirmemiz gerekecektir. Aşağıdaki örnekte olduğu gibi i değişkenini döngü her döndüğünde birer birer artırısak i 11 olduğunda döngü koşulu sağlamadığı için duracaktır.
i=0;
while (i<10)
{
i++;
}
=
i=0;
while (i++<10)
{
}
Döngüleri istediğimiz zaman durdurmak için break komutunu kullanırız. Döngü içinde break komutunu çalıştırdığımız zaman döngü durur ve program döngüden sonraki komutları işlemeye devam eder.
i=0;
while (i<10)
{
i++;
if(i==5) break;
}
Yandaki örnekte döngü i değişkeni 10 olana kadar dönecekti fakat if komutu ile i değişkeni 5’e eşit olunca break komutunu çalıştır dediğimiz için i değişkeni 5’e eşit olduğu zaman döngü duracaktır.
Örnek:
Girilen sayıyı tersten yazan program :
#include <stdio.h>
main()
{
int sayi;
int yazilacak_rakam;
printf("Bir Sayiyi Giriniz = ");
scanf("%d",&sayi);
printf("Sayiyinin Ters Yazilisi = ");
while(sayi>10)
{
yazilacak_rakam = sayi % 10;
printf("%d",yazilacak_rakam);
sayi = sayi / 10;
}
printf("%d",sayi);
}
Çıktı:
Sayiyi giriniz = 123456
Sayiyinin ters yazilisi = 654321
Girilen birinci sayıyı girilen ikinci sayıya bölen, bölüm ve kalanı yazan program :
#include <stdio.h>
main()
{
int x,y,sayac=0;
printf("Birinci Sayiyi Gir: ");
scanf("%d",&x);
printf("Ikinci Sayiyi Gir: ");
scanf("%d",&y);
while (x>=y)
{
x=x-y;
sayac=sayac+1;
}
printf("Bolum = %d",sayac);
printf("\nKalan = %d",x);
}
Çıktı:
Birinci sayiyi gir: 30
Ikinci sayiyi gir : 4
Bolum = 7
Kalan = 2