Yazan: Şadi Evren ŞEKER
Yapısal programlama dillerinde(structured programming languages) herhangi bir alt programın (Subprogram) tekrarlanması istendiğinde döngüler (loop ) kullanılabilir. Bu döngülerin taşıması gereken 3 ana unsur bulunur bunlar:
- Başlangıç değeri (initial)
- Bitiş değer kontrolü (condition)
- ve adım değeri (iteration)
Şayet yukarıdaki bu değerlerde sorun varsa veya istenerek eksik veya bitmeyecek şekilde girildiyse döngü hiçbir zaman bitmeyip sonsuza kadar (namütenahi) dönebilir.
Örneğin aşağıdaki Türkçe cümleyi ele alalım:
“yarından sonra bir sene boyunca haftada bir toplantı var”
Bu cümledeki toplantı olayının:
Başlangıcı : Yarın
Bitişi: Bir sene sonra
Adım değeri : Haftada bir
olarak ifade edilebilir. Dolayısıyla sağlıklı ve sonu olan bir eylemdir ancak aynı cülmeyi:
“yarından sonra haftada bir toplantı var”
şeklinde ifade etseydik bu olayın ne zaman biteceği belirsizdir ve bilgisayar programları açısından sonsuz bir olaydır.
Daha net bir ifadeyle aşağıdaki döngüyü ele alalım:
for(int i = 0 ;i <10;i++)
Bu döngü 0’dan 10’a kadar 1’er 1’er artan i değişkeni üzerinde dönmektedir. Aynı döngüyü:
for(int i = 0 ; ; i++)
veya
for (int i = ; i<10;)
şeklinde yazsak döngü sonsuz olur. (ilkinde bitişi belirsiz, ikincisinde ise adım değeri belirsizdir)
Ayrıca programlama dilleri istekli olarak sonsuz döngüye de izin vermektedir örneğin aşağıdaki döngü sonsuz döngüdür:
for(;;)