Döngü (loop)
Yazan : Şadi Evren ŞEKER
Bilgisayar programlama mantığının en önemli öğelerinden birisidir. Buna göre bilgisayarın tekrarlaması istenen fiiller bir döngü içerisine yerleştirilir ve döngü sonu gelene kadar bu fiiller tekrarlanır.
Bir döngüyü oluşturan 3 ana unsur bulunur:
- ilkleme (başlangıç değeri) (initialisation)
- koşul (bitiş değeri) (condition)
- adım (hareket değeri) iteration
Bu değerlerden birisinin eksik olması veya bulunmaması durumunda döngüde problem var demektir.
Örneğin C / C++ JAVA ve C# dillerinin hepsinde ortak olan aşağıdaki döngü yazılımını (syntax) inceleyelim:
for(int i = 0 ; i< 10; i++){
// eylem
}
Yukarıdaki kodda // yorum olarak yazılan eylem 10 kere tekrarlanır. Buradaki 3 unsuru sıralayalım:
ilk değer: i= 0
bitiiş değeri : i<10
adım değeri : i++
bu değerlerden birisinin bulunmaması durumunda döngüde beklenmeyen durulmar oluşabilir örneğin sonsuz döngü (fasit daire, infinite loop) oluşması veya döngünün hiç çalışmadan çıkması gibi durumlar görülebilir.
Döngüler adımsal (iteratif) programlamanın ana elemanlarıdır. Bir programlama dili yapısal ise bu dilde tekrarlı alt programların (sub program) bulunması ve her alt programın yukarıda listelenen unsurlara göre tekrarlanabilmesi gerekir.
Aşağıda basit bazı döngü örnekleri verilmiştir:
C dili ile ekrana 1′den 10′a kadar sayıları basan program:
for(int i = 0 ;i<10 ; i++){
printf("%d\n",i);
}
Java dilinde ekrana 10′dan 0′a kadar sayıları basan kod:
for(int i = 10 ; i>0;i--){
System.out.println(i);
}
C++ dilinde ekrana 10 kere “sadi” yazan kod:
for(int i = 0;i<10;i++){
cout << "sadi" << endl;
}
C# dilinde ekrana 1′den 10′a kadar olan sayıların toplamını yazan kod:
int toplam=0;
for(int i = 0;i<=10;i++){
toplam += i;
}
Console.writeln(toplam);
Yukarıdaki kodlar dikkatlice incelendiğinde hepsinin for döngüsü ile yazıldığı farkedilebilir. Genelde bir dilde bulunan döngüler şunlardır:
- for döngüsü
- while döngüsü
- do/while döngüsü
Yukarıda for döngüleri detaylıca gösterilmiştir. Döngünün ana unsuru olan başlangıç, koşul ve adım değerlerinin yerleri değiştirerek bütün for döngüleri while döngüsü şeklinde de yazılabilir:
Bir while döngüsünün yapısı aşağıdaki şekildedir:
ilkleme
while(koşul){
adım
//eylem
}
Yukarıda da görüldüğü üzere while komutuna parametre olarak sadece koşul verilmekte ve döngünün başlangıç değeri döngüye girilmeden hemen önce belirtilmektedir. Yine döngünün adım değeri döngü içerisinde belirtilmektedir.
« Çokgen (Poligon, Polygon) | Sonsuz Döngü (Fasit Daire, Kısır Döngü, Infinite Loop) »
Yorumlar
Bilgisayar Kavramları üzerinde şu anda okumakta olduğunuz 'Döngü (loop)' isimli yazı 08 Sep 2008 tarihinde, saat: 05:39 'de Şadi Evren ŞEKER tarafından gönderilmiş, toplam 1522 defa okunmuştur.
Benzer yazıları C/C++, JAVA, Programlama Dilleri kategorilerinden okuyabilirsiniz. Yazar ile irtibat kurmak için email gönderebilirsiniz. Yazıya yorum yapabilir ya da yapılan yorumları RSS 2.0 ile takibe alabilirsiniz.
Yazarın Kitabı
Bu yazının yazarı Şadi Evren ŞEKER'in son çıkan kitabı "Programlama ve Veri Yapılarına giriş (C, C++ ve JAVA ile)" hakkında bilgi almak için Buraya tıklayabilirsiniz.
Eklenen Son Yazılar
- Visual Basic ile Gösterici (Pointer) Kullanımı
- Hasse Çizgeleri (Hasse Diagrams)
- Zeki Vekiller (Akıllı Ajanlar, Intelligent Agents, Zeki Etmenler )
- Integral Kriptoanalizi ( Toplam Tecessüsü , Integral Cryptoanalysis)
- Diferansiyel Kriptoanalizi ( Fark Tecessüsü , Differential Cryptoanalysis)
- Sierpinski Üçgeni (Sierpinski Triangle)
- C ile programlamaya giriş final sınavı çözümleri
- Çok Seviyeli Sıralar (Multi Level Queues)
- Çift Özetleme (Double Hashing)
- İkinci Dereceden Sondalama (Quadratic Probing)
Yapılan Son Yorumlar
- Şadi Evren ŞEKER: Null, NULL, nil veya null olarak...
- Fatih Kabakci: hocam merhabalar,...
- kara: Çok güzel anlatılmış gerçekten teşekkürler...
- Şadi Evren ŞEKER: Bahsettiğiniz şekil dönüşümü...
- Caner: Kullanıcıdan açı girdisi almıyorsanız...
- Furkan Yediyildiz: Algoritmanin mantigi cok güzel...
- havva: çok sağolun çok güzel açıklamalar var tşk...
- Şadi Evren ŞEKER: typedef komutu, bir yapıdan yeni bir...
- fatih kabakci: hocam ben structures ile ilgili bir sorum...
- Şadi Evren ŞEKER: evet, yukarıda açıklanan, herhangi...
- Abdurrahman ulusoy: fi açısından teta kadar döndürme...
- Şadi Evren ŞEKER: Hayır yok, bir noktanın, herhangi...
- Abdurrahman ulusoy: Bu durumda yukarıdaki formüllerin...
- Abdurrahman ulusoy: Merhaba hocam Üstteki mesajımda...
- mustafa ekmekcioğlu: merhaba şadi bey ben hacettepe...
- Şadi Evren ŞEKER: Talebiniz üzerine...
- Evren Kocaturk: ve bunu matlab üzerinde, gerekli...
- Evren Kocaturk: teşekkürler, işime yarayacak gibi,...
- tuncay çavuşoğlu: Şadi bey teşekkürler.Kısa ve...
- attila: hocam bunun bir örneginide Visual Basic diliyle...
Yakın Yazılar
Sonsuz Döngü (Fasit Daire, Kısır Döngü, Infinite Loop)
Bindirme Tipi Fonksiyonlar (Mapping Style Functions)
İç içe döngüler (Nested Loops)
Etiket ve gitme komuları (Label and GOTO)
Özyineli Sayılabilir Diller (Recursively Enumerable Languages)
RC4 Şifrelemesi (RC4 Cipher, ARC4, ARCFOUR)
Çok boyutlu diziler (MultiDimensional Arrays)
2 geçişli çeviriciler (2 pass assemblers)
yapısal programlama (structured programming)
Kaba Kuvvet Metin Arama Algoritması (Bruteforce Text Search Algorithm)
JAVA ile Veritabanı bağlantısı
Bağlantılar