Sonsuz Döngü Nedir?

Sonsuz bir döngü, bir bilgisayar programının sonu olmayan bir komutu çalıştırmaya devam etmesine neden olan bir durumdur. Bu genellikle üç nedenden biri olabilir: programın bitiş koşulu yoktur, programın bitiş koşulu erişilemezdir veya bir yineleme komutu bir programın sürekli olarak yeniden başlatılmasına neden olur. Sonsuz bir döngü, çoğu zaman bir bilgisayarın büyük ölçüde yavaşlamasına ve hatta kilitlenmesine neden olur. İlk bilgisayarlarda, bu döngüler çoğu zaman yeniden başlatmayı gerektirecektir, ancak modern işletim sistemleri sık sık onları yakalar ve kullanılamaz hale gelmeden önce programı sonlandırır.

Programlama içinde sonsuz döngüler vardır; terimin diğer kullanımları genellikle yanlıştır. Çoğu durumda, sonsuz döngüler programın son amacı değildir ve kodda bir koşulun ortaya çıkmasına neden olan bir sorun vardır. Sonsuz bir döngünün üç ana durumunun her biri tamamen programlama ve yazılım tabanlıdır.

Bir programın sonu koşulu olmadığında, son komut setini sonlandırmaya devam eder. Çoğu durumda, bu, programın hiçbir zaman gelmeyecek olan nihai bir talimatı beklediği için kilitlenmesine neden olacaktır. Diğer zamanlarda, programa verilen son komut bir talimat yürütmek ya da bir komutu işlemekti. Bu durumlarda, bu işleri bitmeden yapmaya devam edecektir. Bu, sistemin tüm sonu olmayan bir problem üzerinde çalışana kadar bilgisayarın sonsuz döngüden tekrarlanan komutlarla yavaşça doldurulmasına neden olacaktır.

Bir programın bitiş koşulu sağlanamadığında da benzer bir durum söz konusudur. Bu durumda, program sona erebilir, ancak asla bitmeyecek. Son noktadaki sorun programlamada olabilir veya bu duruma neden olan bir bilgisayar hatası olabilir. Örneğin, bir program belirli bir konumdan belirli bir bilgi parçasını isterse, bir programlama hatası bilginin farklı bir noktada saklanmasıdır. Öte yandan, eğer bilgi programa gidiyorsa, fakat kullanıcının ya da başka bir programın müdahalesi nedeniyle kesintiye uğradıysa, asla gelmeyebilir.

Sonsuz bir döngünün son nedeni tamamen programlama tabanlıdır. Programlama içindeki bir yer, programa bir şeyi tekrar etmesini söyleyen bir komuttur. Bu komutlar yaygın olsa da, koşullar hiçbir zaman tekrarlanan komutun ilk tekrarlamaya geri dönmesine izin vermemelidir. Bu durumda, program bir komutu yürütecek, repeat deyimine basın, sonra komutu tekrar uygulayın, sonra tekrarlayın, vb. Bu döngüler, genellikle kötü amaçlı yazılımın bir parçası olarak, kasıtlı olarak programlanması en muhtemeldir.