While...End While döngüsü Visual Basic'te dilin erken sürümlerinde bulunmaktadır ve belirli bir mantıksal koşul doğru olduğu sürece tekrar eden eylemleri gerçekleştirmek için tasarlanmıştır. Bu yapı, genellikle bilinmeyen sayıda öğe üzerinde yineleme yapmak veya belirli bir olay gerçekleşene kadar kullanılır.
While döngülerinin ilk uygulamaları, geliştiricilere sabit olmayan tekrar sayısı ile yineleme esnekliği sağlamak için temel BASIC sürümlerinde ortaya çıktı; bu, her zaman For yapılarıyla mümkün olmuyordu.
Ana problem, döngüden çıkış koşulunun yanlış oluşturulmasından kaynaklanmakta olup, bu nedenle döngü çok uzun sürebilir (hatta sonsuz bir döngüye dönüşebilir) veya zamanından önce sona erebilir. Ayrıca, değişkenlerin doğru bir şekilde başlatılması ve değiştirilmesi gereklidir.
While döngüsü, bir kod bloğunun kaç kez çalıştırılacağını önceden bilmediğinizde ve çıkış koşulunun çalışma süresince değişebileceği durumlarda kullanılır. Doğru bir uygulama, sonsuz döngüden kaçınmak için döngü içinde koşul değişkenini zorunlu olarak değiştirmeyi gerektirir.
Kod örneği:
Dim counter As Integer = 1 While counter <= 5 Console.WriteLine($"İterasyon: {counter}") counter += 1 End While
Anahtar özellikler:
Eğer While koşulu döngüye girmeden her zaman yanlışsa ne olur? Döngü gövdesi en az bir kez çalışır mı?
Cevap: Hayır, koşul hemen yanlışsa döngü gövdesi hiç çalışmayacaktır. En az bir kez çalıştırmak için başka bir döngü kullanılır — Do...Loop ile post koşullu.
While gövdesi içinde koşul değişkenlerini değiştirmek mümkün mü ve bunu yapmazsak ne olur?
Cevap: Koşul değişkenlerinin değiştirilmesi mutlaka gereklidir, aksi takdirde sonsuz döngü oluşur ve uygulamanın çalışmasını engeller.
Sonsuz döngü örneği:
Dim i As Integer = 1 While i < 5 Console.WriteLine(i) ' Burada i değişmiyor! End While ' Sonsuz döngü
While...End While döngüsü ile Do While...Loop arasındaki fark nedir?
Cevap: Her iki yapı benzer, ancak While...End While'de koşul yalnızca başta yer alırken, Do...Loop hem başta hem de sonunda (Do While/Do Until, Loop While/Loop Until) koşul ifade edebilir, bu da esnekliği artırır.
Geliştirici, While...End While kullanarak bir dizi içindeki sayıları okur, ancak yineleme sayacını gövde içinde artırmaz. Program donuyor.
Artıları:
Eksileri:
Geliştirici, While...End While kullanarak bir dosyadan verileri güvenli bir şekilde okur, doğru şekilde satır sayacını artırır.
Artıları:
Eksileri: