Anasayfa C Dili While ve Do-While Döngüleri

C Dili While ve Do-While Döngüleri

Okan

Bir diğer döngü çeşidimiz de while döngüsü ve do-while döngüsüdür. Bu bölümü 2 başlık altında inleyeceğiz.

WHİLE Döngüsü

Döngü sayısının belli olmadığı durumlar için while döngüsü kullanılır. Belirtilen şart doğru olduğu sürece döngü çalışmaya devam eder. Şart sağlanmazsa da döngü sonlandırılır.

While döngüsünde for döngüsünden farklı olarak değer atama, arttırma veya azaltma bölümleri yoktur. Arttırma ve azaltma döngünün içinde yapılır.

While döngüsünün genel yapısı aşağıdaki şekildedir:

while(şart)
{
işlem1;
işlem2;
...
}

Döngünün içinde bir veya birden daha fazla işlem olabilir.

Şimdi de while döngüsü ile for döngüsünü kullanarak yaptığımız ilk örneğimiz gibi( C Programlama Dili For Döngüsü ) ekrana 10 defa yazı yazdıralım.

Programın kodu aşağıdaki şekildedir:

#include <stdio.h>

main()
{
	int a = 0;
	
	while(a < 10){
		printf("Kod Bloklari\n");
		a++;
	}
}

Yukarıda da anlattığım gibi, değişken atama işlemini döngünün dışında yapıyoruz. Değer arttırma veya azaltma işlemlerini de döngünün içerisinde yapıyoruz.

Kodun ekran çıktısı da şu şekildedir :

while döngüsü -kod-1

Eğer değer arttırma veya azaltma işlemlerini yapmazsak döngümüz sonsuz döngüye dönüşebilir. Değer arttırma veya azaltma işlemlerine dikkat edelim.

Yine bir önceki derste yaptığımız örneklerden devam edelim.

Şimdi de while döngüsünü kullanarak faktöriyel hesaplayalım.

Faktöriyel : 1 den kendisine kadar olan sayıların çarpımıdır. ( 5! = 5.4.3.2.1 )

Bunu programda yine aynı mantıkla önce bir değişken oluşturup 1 den başlatacağız. Daha sonra girdiğimiz sayıya kadar olan tüm sayıları çarpıp girilen sayını faktöriyelini hesaplayacağız.

Kodu aşağıdaki şekildedir:

#include <stdio.h>

main()
{
	int sayi;
	int faktoriyel = 1;
	int sayi2;
	
	printf("Bir sayi giriniz: ");
	scanf("%d",&sayi);
	sayi2 = sayi;   
	
	while(sayi > 0){
		
		faktoriyel *= sayi;
		sayi--;
	}
	
	printf("%d ! = %d",sayi2,faktoriyel);
}

Önce kullanıcıdan bir sayı aldık. Faktöriyel değişkenini 1 den başlattık. Daha sonrada girdiğimiz sayıyı 1 e kadar azaltıp elde edilen tüm sayılar çarparak girilen sayının faktöriyelini bulmuş olduk.

Burada 11.satırdaki girilen sayıyı başka bir değişkene atma sebebim, en son hangi sayının faktöriyelini bulduğumuzu gösterebilmek içindir.

Kodun çıktısı da aşağıdaki şekildedir:

while döngüsü-kod-2

Do-While Döngüsü

Bu döngünün while döngüsünden farkı,koşulun döngü sonunda kontrol edilmesidir. Yani do-while döngüsünde önce işlem yapılır daha sonra koşul kontrol edilir.

Kısacası do-while döngüsü koşul sağlanmazsa da en az bir defa çalışır.

Aşağıdaki örnekte bunu programımızın üstünde deneyelim..

#include <stdio.h>

main()
{
	int a = 10;
	
	do{
		printf("Kod Bloklari");
	}
	while(a > 100);
}

Mesala burada while komutunun içindeki koşulun yanlış olmasına rağmen döngü 1 defa çalıştı. Bunun sebebi do-while döngüsü şarta bakmaksızın önce ‘do’ bloğunu çalıştırır daha sonra şartı kontrol eder.

while döngüsü - kod-3

Şimdi de basit bir örnekten başlayarak do-while döngüsü ile ekranda 5 defa yazı yazdıralım.

#include <stdio.h>

main()
{
	int a = 0;
	
	do{
		printf("Kod Bloklari\n");
		a++;
	}
	while(a < 5);
}

While döngüsünde olduğu gibi değer atama işlemini döngünün dışında yapıyoruz. Do bloğunun içine şart sağlandığı sürece yapmasını istediğimiz komut veya komutları yazıyoruz ve daha sonra da while komutu ile şartımızı kontrol ediyoruz.

dongü-kod4

Şimdi daha güzel bir örnek yapalım.

Kullanıcıdan 0 sayısını girene kadar sayı girmesini isteyeceğiz ve en sonra girdiği tüm sayıların toplamını bulacağız.

#include <stdio.h>

main()
{
	int toplam = 0;
	int sayi;
	int sayac = 0;
	
	do{
		printf("Bir sayi giriniz:");
		scanf("%d",&sayi);
		toplam += sayi;     // toplam = toplam + sayi
		sayac++;
	}
	while(sayi != 0);
	
	printf("Girdiginiz %d adet sayinin toplami  %d dir", sayac, toplam);
}

Bu örnekte 12 ve 15. satırdaki ifadeleri bilmiyorsanız C Dili Operatörler sayfasını ziyaret edebilirsiniz.

Kodun ekran çıktısı şu şekildedir:

do-while- kod -5

While ve do-while döngülerini kullanarak çok fazla ve farklı örnekler yapabiliriz. Konuyu örnekler yaparak daha iyi kavramak için C Programlama Dili Örnekleri sayfasında 33 ‘ den 38. soruya kadar olan örnekleri çözebilirsiniz.

Yorum Yap

Bu web sitesi deneyiminizi geliştirmek için çerezler kullanmaktadır. Kabul Et Tamamını Oku

Gizlilik Politikası