Temel C Programlama -18- do while Döngüsü

Döngüler konusunda en son ele alacağımız yapı do…while ya da kısaca do döngüsüdür. Bu döngü while döngüsünün birebir aynısı olsa da bir yönüyle farklı olmaktadır. while döngüsü döngü şartını üst kısma almışken do döngüsü döngü şartını en alta alır ve döngü şartı sağlansın ya da sağlanmasın döngü blokundaki komutlar en az bir kere işletilir. do bildiğiniz üzere “Yap” anlamı taşımaktadır. İngiliz dil mantığına göre YAP şunu, şunu İKEN şu şartlar altında şeklinde bir dizilimi vardır. Bunu çok kolay ingilizce cümleye çevirebiliriz “Do some work while all conditions are met”dediğimizde bütün şartlar sağlandığında bazı görevleri yap anlamı çıkmaktadır. Burada dikkatinizi tekrar çekmek istediğim nokta bu yapının İngiliz dil mantığına nasıl uygun olarak tasarlandığıdır. Bunu biz anlamak istiyorsak bu mantığı hesaba katmamız gereklidir. Yoksa başka türlü anlamak biraz zor olacaktır.

Bunu Türk dil mantığına çevirirsek “Şu işi yap, şartlar sağlandığında bir daha yap.” Burada işaretlediğim kısımlar programın anahtar kelimeleridir. while kelimesi “-dığında” ekinin yerine de geçmektedir. Programlama dillerinde dilbilimini kullanmakla gerçek dil ve programlama dili arasındaki geçişleri daha rahat yaparız. Bu da gerçek hayattaki olayları programa aktarmamızda bize yardımcı olur.

Şimdi do..while döngüsüne dair bir örneği çalıştırıp inceleyelim ve ardından konumuza devam edelim.

#include <stdio.h>
#include <stdlib.h>
int main() {
	char c;
    printf("Bir Sayi Giriniz:");
	do
	{
		c = getchar();

	}while(c != '0');
 system("PAUSE");
 } // Main Sonu

Burada döngü şartı sağlansın sağlanmasın bizden bir sayı girmemiz istenmekte ve girdiğimiz sayı döngü şartını bozarsa program döngüden çıkmaktadır. While döngüsünde döngü değişkeninin ilk seferde muhakkak döngü şartını sağlaması için değişkene ilk değeri elle veriyorduk. Burada ise böyle bir kullanıma ihtiyacımız kalmamıştır. do döngüsünün getirdiği en büyük özelliklerden biri budur. Şimdi do döngüsünün örnek söz dizimini yazalım.

do
{
  komutlar;
  komutlar;
  komutlar;
} while (şart) ; 

// NOKTALI VİRGÜLE DİKKAT!!!

Burada örnek bir program çıktısını görmekteyiz. Biz klavyede 0 harfini (değerini değil) yazmadıkça programdan çıkış yapmamaktadır. Bunu da şu komut ile sağlamaktayız.

while(c != ‘0’); Yani c değişkeni ‘0’ işaretine (değerine değil) eşit olmadıkça programı döngüyü devam ettir demektir.

c = getchar();

Burada farklı bir komut kullanıyoruz. Biz normalde scanf ile klavyeden girilen değerleri okurduk. Fakat bu scanf’in argümanlarını ve formatlarını yazmak bizi uğraştırıyordu. getchar() fonksiyonu ile tek bir fonksiyonda tek karakteri okuyoruz ve klavyeden okunan karakter fonksiyon tarafından geri döndürülüyor. Bunu c değişkenine atayarak aynı işi yapabiliriz. Dikkat etmeniz gereken nokta getchar() fonksiyonunun sadece karakter formatında tek bir karakter okuyabildiğidir. O yüzden tek bir tuşu okurken bunu kullanmanız gereklidir. Ayrıca putchar(c) dersek bu sefer c değişkenindeki karakter printf fonksiyonunda olduğu gibi karakter formatında ekrana yazdırılmaktadır. Bunlar stdio.h kütüphanesinin fonksiyonları olduğu için ilave bir kütüphane eklemeye gerek yoktur.

Hangi döngünün ne zaman kullanılmasına gelince bunu kesin sınırları yoktur diyebiliriz. Programcılıkta tecrübe edindikçe doğru döngüyü doğru yerde kullanmayı zamanla öğreneceksiniz. Genel olarak for döngüsü bir kod blokunu belli bir sayıda işletmek için, while döngüsü önce şarta bağlı olarak program blokunu belirsiz sayıda işletmek için, do döngüsü de şart fark etmeksizin en az bir kere işletmek için kullanılır.

Döngü konusunu bitirmiş olduk ve sonraki yazımızda kararlara giriş yapacağız.

Last updated