Turkish Golang Tutorial Guide #3 : Loops
Hi everyone, this is a Turkish tutorial content about Golang (Go) programming language. It will be a contet serial abut this language. This post will be second part and will be about loops. So, thank you for reading!
- Check this Turkish Golang Tutorial Guide #1 : Setup, Structure, Syntax
- Check this Turkish Golang Tutorial Guide #2 : Variables, Operators, Decision Making
Döngüler / Loops

Source
Loops veya Türkçe karşılığı ile döngüler üçe ayrılır. Yani üç farklı döngü çeşidi vardır. Bunlar:
- for Döngüsü
- while Döngüsü
- do-while Döngüsü
Döngülerde amaç birden çok kez tekrar etmemiz gereken işlemleri sürekli tekrar tekrar aynı kodu yazıp yapmaktansa bunu bir koşul ifadeye bağlayıp bir döngü içine sokarak, bu işlemin kendi kendine tekrar edilip yapılmasını sağlamaktır. Yani bir nevi yazılımı işlem yükünden kurtarıp hem programa hem de yazılımcıya hız kazandırmaktır döngülerin hedefi. Fakat daha önceki yazılarda da belirttiğim gibi Go dilinde syntax ve bazı kavramların genel dillere nazaran daha farklı olduğunu görüyoruz. Burada normalde while döngüsü yerine for kullanılıyor yani for iki döngünün de işlevini üstleniyor denilebilir.
Bu örnekte de görüldüğü gibi ilk for döngüsü bildiğimiz for döngüsüne son derece benzer bir yapıya sahip syntax farkını göz ardı edersek. Fakat ikinci for döngüsü normal for döngüsü yerine while döngüsü tarzında bir sisteme sahip. İşlemler ve döngü for'un tanım kısmında bir koşul ifadeye bağlanmış durumda. Son açılan for döngüsü ise ilk ikisinden farklı ve belki nispeten onların bir birleşimi gibi olmuş. Bana biraz python'u anımsattı son for döngüsü.
Yazdığımız bu kod ile bir çok farklı ama benzer iş yapıp aralarındaki ince farkları görme şansımız oluyor. Örneğin ilk for döngüsünde a değişkenini 0'dan başlatıp 9'a kadar arttırıp ekrana çıktı olarak basıyor ve son değer olarak 9'u da çıktı olarak bastıktan sonra bu for bloğu ile işimiz bittiği için bir sonrakine geçiyoruz.
Fakat ikinci for döngüsünde a değişkeninin değeri ilk döngüde kaldığı yerden devam ediyor yani a ilk önce 9 değerini alıyor ve b'den küçük olduğu için kendisini bir arttırıp çıktı olarak sunuyor ve döngünün başına dönüyor. Bu süreç a en son 15 olarak çıktı verilinceye kadar devam eder. Ardından son döngüye girer ve öncesinde tanımlanmış dizinin dizin numarası ve eleman değerini çıktı olarak verir. Fakat dizin sayısı ile dizinin içindeki eleman sayısı aynı olmadığından ötürü, elemanlar bitince kalanlara 0 veya NULL atanır.
Bu noktada bir kaç kavrama da deyinmemiz gerekiyor. Bunlar;
- break : Bir for döngüsü veya switch ifadesini sonlandırır ve for döngüsünün veya anahtarın hemen ardından gelen deyime yürütmeyi aktarır.

- continue : Döngünün vücudunun geri kalan kısmını atlaması ve tekrarlamadan önce durumunu tekrar test etmesine neden olur.

- goto : Döngüde etiketlenen kısıma geçişi sağlar. Yani döngü içerisinde istediğimiz yere sıçramamıza olanak tanır.

Son olarak ise sonsuz döngü kavramından kısa bahsedecek olursak, koşul ifadenin asla sağlanamadığı bu yüzden döngünün asla bitmediği türde döngülere sonsuz döngüler denir. Genelde bir hata olarak karşımıza çıkarlar.
Posted on Utopian.io - Rewarding Open Source Contributors

-- "Open-source programın, sadece next next kurulumunu değil, onunla neler yapıldığına örnekler de verin" demelerinden arkasında, ortaya yeni ürünlerin çıkmasını desteklemek de varmış, şimdi daha iyi anladım utopian'in kural değişikliğinin sebebini.
-- goto çeyrek asır önceye götürdü beni
-- github'a attığımız kendi projelerimizi, pythonla yapılan örnekler olarak anlatacak olursak, Development'e mi atmak lazım video tutorial'e mi göndermeli? (yoksa 2 ayrı konu mu olmalı?)
-- markdown kullanma şeklin, derli toplu bir görüntü veriyor. Okuması daha tatlı oluyor
eline sağlık!
Yorum için çok teşekkürler, düzenli yorumlarını görmek sevindiriyor beni :) Ufak örneklerse tutorial - video tutorial kategorilerine, orta veya büyük ölçekli ise developer kategorilerine atmak daha daha iyi olur gibi :)
Merhabalar. Guzel bir paylasim olmus tebrik ederim. Paylasimlarinizin kalitelerinin arttigini gormekteyim. Bunun icinde ayrica sizi tebrik ederim. Sonraki paylasiminzizi heyecanla beklemekteyim.
Thank you for the contribution. It has been approved.
You can contact us on Discord.
[utopian-moderator]
Hey @monomyth I am @utopian-io. I have just upvoted you!
Achievements
Community-Driven Witness!
I am the first and only Steem Community-Driven Witness. Participate on Discord. Lets GROW TOGETHER!
Up-vote this comment to grow my power and help Open Source contributions like this one. Want to chat? Join me on Discord https://discord.gg/Pc8HG9x