Loop ifadesiyle döngü blokundaki ifadeler, döngünün her yinelemesi için tekrar edilir.
Aşağıdaki Fortnite Bahar Temizliği İfadesi GIF’i, loop ifadesinin işleyişine bir örnektir. GIF sonuna kadar oynatılır, sonra baştan başlar ve bunu kullanan oyuncu bir döngü bloğundaki ifadeler gibidir.
# GIF
loop:
DoCleanSweepEmote()Bir GIF gibi döngü bloğu da aksi yönde talimat verilmedikçe sonsuza kadar tekrarlanır. Buna sonsuz döngü denir.
Sonsuz döngüler programın ilerlemesini engelleyeceği için çoğu durumda çok kullanışlı değildir. Bu yüzden Verse, bunları sonlandırmanın ve/veya askıya almanın bir yolunu sunar.
Son: Bir döngüyü, break veya
returnile çıkış yaparak sonlandırabilirsin.Askıya Al: Döngü bir
asyncifadesinde kullanılıyorsa döngüyü askıya alabilirsin. Daha ayrıntılı bilgi için Eşzamanlılığa Genel Bakış bölümüne bak.
Aynı döngüde bu ikisini birlikte yapmak da mümkündür. Bu örnekte döngü bloğu, oluşturulan rastgele sayı yirmiden az oluncaya kadar tekrarlar.
loop:
# generate random number
RandomNumber : int = GetRandomInt(0, 100)
# check if random number is less than twenty
if (RandomNumber < 20):
# exit loop
breakBu, sözdizimsel olarak şununla aynıdır:
expression0
loop:
expression-block
if (test-arg-block):
break
expression-block
expression2Diğer kontrol akışı ifadelerinin aksine, döngü ifadesi boş değer döndürdüğü için ifadelerin sonuç döndürmesini istediğin durumlarda kullanışlı olmayabilir. Döngü, bir fonksiyonun içindeyse return ile bir değer döndürmek mümkündür ancak bu yalnızca döngüden değil fonksiyondan da çıkış yapmaya neden olur.
İç İçe Loop İfadeleri
Bir döngü ifadesini diğer döngü ifadesinde iç içe yerleştirebilirsin. Birinci döngüye bazı durumlarda dış döngü, ikinci döngüye iç döngü adı verilir. break ifadesi bir iç döngü içinde yürütüldüğünde yalnızca iç döngü içinden çıkar.
Aşağıdaki örnekte dış döngü; expression3 ifadesine ve iç döngü çıkış yaptıktan sonra if ifadesine devam eder, daha sonra expression1 ile iç döngüyü tekrar yürütebilir.
expression0
# outer loop
loop:
expression1
# inner loop
loop:
expression2
if (test-arg-block0):
# exit inner loop
break