Javada Tekrarlı Yapılar – Döngüler (Repetition Structures – Loops)

donguler

 

Algoritma  geliştirirken  bazı  işlemleri  sürekli  tekrarlanmamız  gerekir.  Tekrar  edilen işlemleri göstermenin ya da ifade etmenin daha kolay ve anlaşılır bir yolu vardır, bu yola döngü ya da tekrarlı yapılar denir. Tekrarlama işleminin kaç kez yapılacağının baştan belli olduğu  yapılara  tekrar  sayısı  belli  olan  döngüler  (for  döngüsü  gibi),   tekrarlamanın bitişinin koşula bağlı olduğu, diğer bir ifade ile koşul gerçekleştiği veya gerçekleşmediği sürece işlemlerin tekrar ettiği yapılara tekrar sayısı koşula bağlı döngüler ( do/while, while döngüleri gibi ) denir. Örnek vermek gerekirse 1’den 10’a kadar sayıları toplayan bir program yazdığınızda 9 kez tekrarlama yaptırıyorsanız bu tekrarlama sayısının başlangıçta belli olduğu anlamına gelir. Ancak girilen sayı sıfırdan farklı olduğu sürece sayının karesini alan bir programda tekrar sayısını baştan bilemeyiz, burada tekrar sayısı koşula bağlıdır.

Tekrar Sayısı Belli Olan Döngüler

Daha önceki bölümlerde işlemleri tekrar etmek için Sayaç kullanmıştık. Sayaç değişkenine başlangıç değerini atadıktan sonra artırma ya da azaltma işlemi yapıyorduk ve sayacın son değerine ulaşıp ulaşmadığını her işlemden sonra kontrol ediyorduk. Döngü yapıları bu işlemleri oldukça basitleştirmektedir. Tekrar sayısının baştan belli olduğu döngülere en güzel örnek for döngü yapılarıdır. Bu yapının kullanım şekli ve akış şeması aşağıda gösterilmiştir.

 

for deyiminin kullanım şekli; 

for( başlangıç değeri; koşul; Artım ya da azalım miktarı )

tekrarlanacak işlemler;

ya da

for( başlangıç değeri; koşul; Artım ya da azalım miktarı )

{

}

for1

 

 

 

Tekrar Sayısı Koşula Bağlı Döngüler

İşlemlerin ne kadar tekrarlanacağının baştan belli olmadığı ancak bir koşulun doğru ya da yanlış olmasına bağlı olarak tekrar sayısının belirlendiği bu döngüleri, koşul kontrolünün yapıldığı yere  göre  ikiye  ayırırız.  Birincisinde program başında koşul  kontrolü yapılır, diğerinde ise bir defa işlem yapıldıktan sonra koşul kontrolü yapılır, koşulun doğru ya da yanlış olmasına göre de işlem tekrarı yapılır. Koşul denetiminin döngü başında gerçekleştiği yapılarda while deyimi kullanılırken, koşul denetiminin bir defa işlem gerçekleştikten sonra yapıldığı döngülerde do / while deyimi kullanılır. Bu deyimlerin akış şemaları ile gösterimi aşağıda verilmiştir.

while

 

while ve do/while döngülerinin kullanım şekilleri
while

(koşul)

{ (İşlemler);

}

 

Sürece    <   koşul   >     yap     (işlemler) Verilen  koşul  doğru  olduğu  sürece belirtilen işlemler tekrar edilir. Koşul kontrol işlemi, döngünün başında yapılır.

do

{

(İşlemler);

} while (Koşul)

 

Tekrarla  (işlemler)  ta ki   <koşul> Bir defa işlem yapıldıktan sonra koşul doğru olduğu sürece belirtilen işlemler tekrar edilir. Koşul kontrol işlemi döngünün sonunda yapılır.

 

 

NOT: while, do-while, for döngülerinden çıkmak için break deyimi kullanılır. break deyimi;

break deyimi etiketli (labeled) ve etiketsiz (unlabeled ) olmak üzere iki farklı şekilde kullanılabilir. Etiketsiz (unlabeled ) break deyimini, switch / case yapılarında nasıl kullanıldığını görmüştük. Etiketsiz  break ifadesi ile koşul sağlandığında switch ifadesinin sonlanmasını sağlıyorduk. break ifadesini aynı şekilde while, do-while ve for döngülerinden çıkmak içinde kullanabilirsiniz

Etiketsiz break deyimi ile en içteki while, do-while, for döngüleri sonlandırılırken, etiketli break deyimi örnek 4.17.de olduğu gibi  etiket hangi döngünün başına konulmuş ise  o döngü sistemini sona erdirir.

 

continue deyimi;

continue deyimi, döngü içersinde o anki işlemin atlanmasını (göz ardı edilmesini)  ve bir sonraki işlemden devam edilmesini sağlayan bir komuttur. continue deyimi de break deyimi gibi  while,  do-while  ve  for  döngülerinde etiketli  veya  etiketsiz  olarak  kullanılabilir. Etiketsiz continue deyimi en içteki döngü içerisinde etkili olurken, etiketli continue deyimi ise başına konulduğu döngü yapısını etkiler.

 

return deyimi;

Bir fonksiyon veya metottan değer geri döndürür. Ayrıca programdan çıkış içinde (void yöntemler için) kullanılabilir.

 

 

İç İçe Döngü Kullanımı

Birden fazla döngü ve kontrol yapısını iç içe kullanabiliriz. Sıralama, matris veya tablo gibi iki – üç boyutlu işlemlerin yapıldığı uygulamalarda sıklıkla iç içe döngüleri kullanırız. İç içe döngü yapıları, bir döngü içerisinde başka bir döngü ya da döngülerin kullanıldığı yapılardır.

İç içe döngülere verebileceğimiz en güzel örneklerden biri zaman sistemimizdir. Bir gün, 24 saatten, 1 saat 60 dakikadan, 1 dakika 60 saniyeden ibarettir ve hepsi iç içedir. Zaman sisteminde en içteki döngüyü saniye temsil etmektedir. Saniye en son değerine ulaştığında yani 60 değerini aldığında dıştaki döngü bir artar yani dakika bir artar. Dakika en son değerine ulaştığında dıştaki döngü yani saat bir artar. Saat son değerine ulaştığında yani 24 olduğunda bir gün tamamlanmış olur.

saat

 

Zaman sistemimize dikkat edilirse, saniye tamamlanmadan dakika, dakika tamamlanmadan saat başlamaz. Yani dakika saniyenin, saat dakikanın önüne geçmez, birbirine karışmaz. Benzer şekilde iç içe döngü kurulurken dikkat edilmesi gereken en önemli nokta, içteki döngü  tamamen bitmeden dıştaki döngüye geçilmemesidir. Yani döngülerin birbiri  ile çakışmamasına dikkat edilmelidir.

dongu

 

Ve döngü konusu da bu kadar.. Hepinize bol Javalı Günler 🙂

Reklamlar

Bir Cevap Yazın

Aşağıya bilgilerinizi girin veya oturum açmak için bir simgeye tıklayın:

WordPress.com Logosu

WordPress.com hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Google+ fotoğrafı

Google+ hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Twitter resmi

Twitter hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Facebook fotoğrafı

Facebook hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Connecting to %s