Menu
Coddy logo textTech

Sonsuz Döngü

Coddy'nin C# Journey'sinin Temeller bölümünün bir parçası — ders 47 / 69.

Sonsuz döngü, koşulu her zaman true olarak değerlendirildiği için hiç durmayan bir döngüdür. Bu döngüler herhangi bir döngü türüyle (for, while, do-while) oluşabilir, ancak koşulları açıkça belirtildiği için en yaygın olarak while ve do-while döngüleriyle ilişkilendirilirler.

İşte sonsuz bir while döngüsü örneği:

while (true) {
    Console.WriteLine("This will print forever!");
}

Bu durumda, koşul sadece her zaman true olarak değerlendirilen true ifadesidir. Bu nedenle döngü, mesajı tekrar tekrar yazdırarak sonsuza kadar çalışacaktır.

Sonsuz döngü oluşturmanın başka bir yolu da bir for döngüsündeki koşulu atlamaktır:

for (;;) {
    Console.WriteLine("This also prints forever!");
}

Burada, for döngüsünün başlatma, koşul ve güncelleme kısımlarının tamamı atlanmıştır. Bu, sonsuza kadar çalışan bir döngü oluşturur.

Sonsuz döngüler, bir mantık hatası nedeniyle döngü koşulunun her zaman true olması gibi durumlarda kasıtsız olarak da oluşabilir:

int i = 0;
while (i < 10) {
    Console.WriteLine("i is: " + i);
    // i'yi artırmak için i++ eksik
}

Bu örnekte, i değişkeni hiçbir zaman artırılmaz, bu nedenle i < 10 koşulu her zaman true olur. Bu, süresiz olarak "i is: 0" yazdırmaya devam edecek olan sonsuz bir döngü oluşturur.

Sonsuz döngüler, manuel olarak durdurulana kadar çalışmaya devam etmesi gereken sunucu programlarında olduğu gibi bazı durumlarda yararlı olabilir. Ancak, düzgün bir şekilde yönetilmezlerse programların donmasına veya çökmesine de neden olabilirler.

Kopya kağıdı

Sonsuz döngü, koşulu her zaman true olarak değerlendirildiği için asla durmayan bir döngüdür.

Kasıtlı sonsuz while döngüsü:

while (true) {
    Console.WriteLine("This will print forever!");
}

Atlanmış kısımları olan sonsuz for döngüsü:

for (;;) {
    Console.WriteLine("This also prints forever!");
}

Kasıtsız sonsuz döngü (eksik artırma):

int i = 0;
while (i < 10) {
    Console.WriteLine("i is: " + i);
    // i'yi artırmak için i++ eksik
}

Kendin dene

Bu ders bir kod alıştırması içermiyor.

quiz iconKendini test et

Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.

Temeller bölümündeki tüm dersler