C/C++ Dillerinde Döngü Kullanımı
(937 kelime) (741 okuma)
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
|