C/C++ Dillerinde Döngü Kullanımı

C/C++ Dillerinde Döngü Kullanımı:

//standart girdi çıktı fonksiyonları için gerekli header dosyası
//bu dosyayı programımıza eklemezsek printf(); fonksiyonunu kullanamayız.
#include <stdio.h>

//ekrandan bir karakter okumak için gereken getch(); fonksiyonunu kullanmak için

//bu header dosyasını ekliyoruz
#include <conio.h>

//void main() programın başladığı yer.bu fonksiyon geriye hiç birşey döndürmüyor bunu başındaki
//void den anlıyoruz.buraya int main() yazsaydık programın herhangi bir yerinde return 0; diyip
//programı sonlandırabilirdik.Konumuz döngüler bu yüzden fazla detaya gerek yok. :]
void main()
{

    //10 tane elemanı olan bir dizi yaratıyoruz ve tüm elemanlarına bir değer veriyoruz.
    //bu diziyi döngülerimizde kullanacağız.
    int dizi[10]={0,1,2,3,4,5,6,7,8,9};

    //döngüler için bir değişken
    int i=0;

    //bool değişkeni sadece 2 değer alır.Bunlar false(yanlıs)(0) veya true(dogru)(1) dır.
    //bu değişkeni while döngülerimizde kullanacagız.
    bool bBitti=false;

    //şimdi sırasıyla 3 farklı döngüden bahsedecegiz bunlar sırasıyla:
    //for,while,do..while.

    //for dögüsü:
    //genelde bi dizinin elemanlarına sırasıyla ulaşmak için ya da bir işi birden çok kez
    //tekrarlamak için kullanılır.başka kullanım alanları da vardır tabi ama şimdilik nasıl
    //kullanıldığını bilsek yeter.

    for(i=0;i<10;i++)

        //for döngüsü basitçe böyle. i değişkeni sıfırdan başlayarak 10 dan küçük olduğu sürece
        //birer birer artar ve her artışında altındaki satırı yapar.yani printf(); komutu 10 kez
        //calışır.Dizimiz 100 elemanlı olsaydı içindeki bütün elemanları ekrana yazdırmak için 100 tane
        //printf yazmak sacma olurdu.Bu şekilde sadece 2 satırda hepsini yazabiliyoruz :]
        printf("%d ",dizi[i]);

        //printf(); fonksiyonu ekrana yazdırmaya yarıyor.ilk parametre de ekranda ne yazılacağını
        //belirtiyoruz %d yazdıgımız yere sağdaki değer geliyor "d" tam sayı demek,integer yani.
        //sağdaki değer yukarda yarattığımız dizinin i. elemanı.i birer birer arttığı için dizinin
        //10 elemanı ekrana yazılıyor.
   
    printf("\n\n");
    ///iki satır aşağı inmeye yarar "\n" new line :]
   
    i=1;
    //i yukardaki for döngüsü bittiğinde 10 olur bunu 1 yapıyoruz.
   
    //while döngüsü:
    //while döngüsü ardından gelen parantez içindeki koşul yanlış olana kadar tekrarlanır.Tamam bu hiç
    //bir anlam ifade etmiyor :] şöyle diyelim oyununuz devam ettiği sürece while döngüsü çalışmalı
    //oyun ana bir dögüden oluşuyor.her dögünün başında kullanıcıdan input alıyosunuz harita ciziyorsunuz
    //modelleri ciziyosunuz vs..
    //sonra eğer oyuncu oyundan cıkmak istememişse tekrar herşeyi yapıyoruz.Kısaca böyle şimdi nasıl
    //yazılıyor ona bakalım.

    while(bBitti==false)
    {
        //while döngüsünden sonra gelen karşılaştırma doğru olduğu zaman while döngüsünün içi çalışır.
        //aksi takdirde program while döngüsünün bittiği parantezden devam eder.
        //eğer parantezlerin içini boş bırakırsak bBitti hiç bir zaman true olmaz ve program hiç bitmez.
        //bu yüzden bir şekilde bBitti'yi true yapıcaz.
               
        printf("while dongusu %d. kez calisti.way be :]\n",i);
        //döngünün kaçıncı çalışması olduğunu ekrana yazıyoruz yukarda i yi 1 yapmıştık.Bu ilk çalışması
        i++;
        //i yi bir arttırıyoruz.bir daha çalışırsa 2. çalışması olucak.
       
        printf("dongu devam etsin mi?(e)vet/(h)ayir\n");
        //kullanıcıya devam edip etmek istemediklerini soruyoruz.
       
        if(getch()=='h') bBitti=true;
        //getch fonksiyonu napıyor???hmmm. getch(); fonksiyonu kullanıcının klaveyede bir tuşa basmasını bekler.
        //her hangi bir tuşa basıldığında getch(); bu tuşun değeri olur yani ben "g" ye basarsam getch()="g" dir.
        //if satırında basılan tuş "h" mi diye kontrol ediyoruz eger "h" ise yani kullanıcı döngüyü sonlandırmak
        //istiyorsa tek yapmamız gereken bBitti yi true yapmak böylece döngü yukarı dönüp bBitti==false satırına
        //geldiğinde (true==false) yanlıs olacagından döngü bir daha çalışmaz.
       
    }
    printf("\n\n");
    //iki satır aşağı hadi bakiyim :]
   
    //do while dögüsü:
    //bu döngü while ile neredeyse aynı.Tek farkı do while döngüsü koşuldan bağımsız olmak üzere en az bir kere
    //çalışır nedenini şimdi göreceksiniz.
    do
    {
        printf("bBitti true olmasina ragmen dongu bir kez calısti.Yapicak bisi yok bu isler böyle :].\n");

    }while(bBitti==false);
    //gördügünüz gibi karşılaştırma dögünün sonunda olduğu için içindekiler en az bir kez yapılıyor.
    //sondaki karşılaştırma yanlış çünkü bBitti'yi bir önceki döngüde true yapmıştık.Böylece döngü bitiyor.

     getch();
   
//programın hemen kapanmaması için bir tusa basılmasını bekliyoruz.

}

//ve programımız bitti :]

Barış S. Uşaklı :: 2002 :: www.oyunyapimi.org




Bu yazının bulunduğu site: OyunYapimi.org
http://www.oyunyapimi.org

Bu yazı için adres:
http://www.oyunyapimi.org/modules.php?name=Sections&op=viewarticle&artid=18