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 haberin geldigi yer: oyunyapimi.org
http://www.oyunyapimi.org

Bu haber icin adres:
http://www.oyunyapimi.org/modules.php?name=Sections&op=viewarticle&artid=18