PROGRAMLAMA DERSLERİ PYTHON 12
BÖLÜM 5 - 3
break ve continue komutları
Döngü içinde döngünün gerektirdiğinden farklı bir işlem yapmak için o döngüyü kırabiliriz ya da o döngüyü kırmadan ve o özel tanımlanmış bir an için işlem yapmadan devam ettirebiliriz. Bu işlemleri break ve continue komutları ile sağlıyoruz. Aşağıda bir döngü içinde continue komutu örneği bulacaksınız. Bu komut döngü içinde belirlenen şart gerçekleştiğinde o işlemi yerine getirmeyip sonraki işleme atlıyor. Kod ve alttaki çıkışı inceleyin. Sayac değişkeni 3 değerini işleme koymuyor.
- #break continue komutları uygulaması
- liste=[1,2,3,4,5,6,7,8]
- for sayac in liste:
- if sayac==3:
- continue #sayac 3'e geldi print etme/
- #sonraki sayac değerine git
- print(sayac)
Yukarıdaki kod, yukarıdan aşağı olmak üzere 1 2 4 5 6 7 8 değerlerini yazar. Gördüğünüz gibi sayac 3 değerine ulaştığında continue komutu ile print işlemini atlayıp bir sonraki değere geçer ve döngü belirlenen aralıkta çalışmaya devam eder.
Ancak unutmayın ki, program continue komutundan önceki her işlemi çalıştıracağı için continue öncesinde koyduğunuz her komut çalışır, break komutu kullandığınızda ise döngü sonlanır. Yani arada bir koşulla karşılaştığında ya da break komutu ile karşılaşıldığında programın çalışmasını durdurabilirsiniz.
- #break/continue komut örnekleri uygulama
- liste=range(25)
- for sayac in liste:
- if sayac %3 !=0 #sayı3'e bölündüğünde sıfırdan farklıysa
- continue # bu durumda işlem yapma devam et
- print(sayac)
Yukarıdaki örnekte range (aralık) içinde belirtilen ve 3’e tam olarak bölünen sayıları buluyoruz. sayac % 3 !=0 satırında önce sayaç 3’e bölündüğünde kalanını (% kalanlı bölme işaretiyle) dikkate alıyoruz. Sonra bu kalan 0’a eşit değil mi (!=0) diye soruyoruz. Eşit değilse continue komutu ile bir sonraki değer üzerinden işlem yapmaya gidiyoruz.
Şimdi bu noktada break komutu için iki ayrı durum görüyorum.
- Bölündüğü zaman kalanı 0 veren sayıların içinde bir noktada programın çalışmasını durdurmak.
- Bölündüğü zaman kalanı 0 veren ya da vermeyen herhangi bir sayı geldiği zaman programı durdurmak.
İlk durum için şöyle bir kodlama örneği verebiliriz.
- #break / continue komutu uygulamaları
- liste=range(35)
- for i in liste:
- if i %3 !=0:
- continue
- if i ==15:
- break
- print(sayac)
Sonuç : 0, 3, 6, 9, 12
Yukarıda i sayacı 35 adımlı liste alanı içinde 0 dan yukarı doğru (35 hariç) hareket ediyor. Sıfır (0) herhangi bir sayıya bölündüğü zaman sıfır değeri döndürür. Bu nedenle kalansız bölme verdiği için listeye alınmıştır. 1 ve 2 ise 3’e bölündüğü zaman kalanlı değerler üretir ki bu nedenle listede görünmez. Sayaç 3'e geldiği zaman kalanlı bölümü 0’a eşit mi diye sorulur. Yanıt EVET olduğu için program bir alt satırdan devam eder. Bu defa program i sayacı 15 mi diye sorar. Cevap Evet ise program break komutu ile çalışmayı durdurur değilse döngü alanında bir üst değerden devam eder. Yani 4 için aynı işlemi yürütür. Burada 15 kontrol sayacı 3’e kalansız bölünen bir sayı olduğu için kontrol devrededir ve program kesilir. Ancak, buraya 15 yerine 16 ya da 3’e kalansız bölünmeyen başka bir sayı yazsaydık o zaman program bu adımı hiç görmeyecekti ve range’de verilen aralığın tamamını kontrol edecekti.
Şimdi 3’e kalansız bölünen ya da bölünmeyen herhangi bir kontrol noktasında duran bir kod yazalım.
- #break / continue komutu uygulama
- liste=range(35)
- for sayac in liste:
- if sayac==17:
- break
- if sayac%3 !=0:
- continue
- print(sayac)
Görüldüğü üzere burada sayaç en başta kontrol ediliyor 17’e geldiği zaman program çalışmayı bırakıyor. Ancak 17’e gelene kadar her rakamı 3’e bölüp kalansız olup olmadığını kontrol ediyor. Bu arada print komutunun ikinci if bloğunun içinde çalıştığını belirtmeliyim. Yani sadece 3’e kalansız bölünen sayıların çıkışlarını alıyoruz.
Bu örnek de bize sayaç kontrolünün ne yapmak istediğimizle ne kadar ilgili olduğunu göstermektedir.
Bir sonraki bölümde bu güne kadar öğrendiklerimizi içeren biraz daha kompleks ya da belirli bir amaca hizmet eden bir kod yazacağız.
Levent Aslan.




Yorum Yap