Tekrar hoş geldiniz.
Şimdiye kadar, döngü ile dört tane kullanabileceğimizi öğrendik.
Ama aslında döngü için başka bir yol daha var.
Ve bir for döngüsü yerine bir while döngüsü çağrılır.
While döngüsü ise bir koşul gerçekleşirken dediğimiz için biraz daha farklıdır.
Bir şeyler yap.
Yani burada biraz fark olduğunu görebilirsiniz.
Örneğin, sıfır 50'den küçükken bir şey yap diyebilirim ya da örneğin sıfıra eşittir
diyebilirim.
Ve %50'den daha az olsa da söyleyeceğim.
Şimdi, eğer bu programı çalıştırırsam, sizce ne olur?
Hadi öğrenelim.
Çalıştır'a tıklarsam.
Tamam.
Şunu görüyor musun?
Bilmem anlatabildim mi ama şu anda tüm bunları gözden geçiriyorum.
Dönüyor, dönüyor, dönüyor, dönüyor, dönüyor.
Ve aslına bakarsanız programın hala çalıştığını görüyorsunuz.
Durdurmak zorundayım, çünkü yaptığı şey dönüp dönüp dönüp durmaktı.
Çünkü koda bakarsak, sıfır her zaman 50'den küçük olacaktır.
Peki ne oldu, bu doğruyken biz bunu bastık.
Ben ve Python yorumlayıcısı ikinci satıra geri döndük ve şöyle dedik: Hey, sıfır hala 50'den küçük mü?
Evet.
Tamam.
Sonraki satırı yazdır.
Hey, sıfır hala 50'den az mı?
Evet.
Tamam.
Sonraki satır, yazdır.
Ve devam etti.
Devam etti, devam etti.
İşte bu sonsuz döngü dediğimiz şeydir.
Yani, program ne zaman duracağını bilmiyor.
Yani, sonsuza kadar devam etmesini söylüyoruz, sonsuza kadar.
Ve burada bazı önlemler aldım.
Ancak bunu kod içinde yaparsanız, programınız çökene kadar bu sonsuz döngüyü elde edersiniz.
Eğer bu kodu gerçekten çalıştırırsanız, makine artık yeterli güce sahip olmayana kadar çalışmaya
devam edecektir.
Bunu tekrar tekrar yapmaya devam etmek için yeterli kaynak.
Her şeyin bir sınırı vardır, değil mi?
Bu yüzden while döngüsünde gerçekten dikkatli olmalıyız.
Bu sonsuz döngü çok tehlikeli olabilir.
Peki bunu nasıl çözebiliriz?
Bir break deyimi fikrimiz var ve break, Python'da sadece başka bir anahtar kelime.
Ve tahmin edebileceğiniz gibi, eğer koş'a tıklarsam.
Şuna bak.
Sadece bir kez çalışır.
Python kırılmayı görür görmez, tamam, vahşi döngüden çık diyecektir.
Bu yüzden beşinci satıra gidecek ve orada hiçbir şey yok, programlar tamamlandı diyecek.
Programdan çıkacağım.
Hmm.
Peki ya bunun 50 kez döngüye girmesini istersem?
Bu sorunu nasıl çözebiliriz?
Bunu bir düşün.
Basitçe ben diyebiliriz.
I artı bire eşittir.
Ve sonra bunu I olarak değiştirdiğimizden emin olun.
Şimdi Çalıştır'a tıklarsam ne olacak?
Duracak mıyız?
49 yaşındayken bunu 50 kez yaptık.
Bunu 50 kez yaşadık çünkü gözü tekrar tekrar artırmaya devam ettik, böylece döngüye her geri
döndüğümüzde bir artıyordu.
Şimdi, bunun daha önce gördüğümüz bir kısaltması, artı eşittir bir yapmaktır.
Böylece eğer koşarsam.
Aynı şeye bakın.
Böylece döngünün dışına da çıkabiliyoruz.
Bir koşulu yanlışa dönüştürebildiğimiz sürece.
Yani bunu da çok göreceksiniz.
Yani vahşi bir döngüden çıkmak için ya koşulu yanlışa çevirebilir ya da döngüden çıkabilirsiniz.
Şimdi, while döngüsü ile yapabileceğimiz bir başka ilginç şey de else bloklarına sahip olabilmemizdir.
Ve burada baskı diyebiliriz.
Bütün işler bitti.
Ve eğer buraya tıklarsam.
En sonunda.
Şuna bak, onca iş bitmiş.
Ve bu İngilizce gibi okunmalı, değil mi?
Ben 50'den azken.
Buradan devam edin.
Ve son kısma geldiğimizde ben 50 oluyorum, 50 artık 50'den az değil.
Python yorumlayıcısı diyecek ki, tamam, oranın altındaki hiçbir şey umurumda değil.
Bir sonraki satıra geçelim ve başka türlü olsun.
Yani bu durumda başka bir şey olmuyor.
Tüm işleri bitirmiş olarak basabiliriz.
Ama muhtemelen kendinize soruyorsunuzdur, bekleyin.
Yapamaz mıyım?
Bunu yapmıyorum ve sadece girintimin sonda olduğundan emin oluyorum.
Çalıştır'a tıklayın ve.
Bu işe yarıyor, değil mi?
Neden yazmak isteyeyim ki?
Başka bir yerde.
Burada başka ne gibi özel bir durum var?
Yararlı olan bir şey var.
Yani, örneğin buraya bir break ifadesi eklersek.
Ve Çalıştır'a tıklıyorum.
Elf'in ifadesinin yazdırılmadığını göreceksiniz.
Bunun nedeni, else bloğunun yalnızca bir kesme olmadığında çalışacak olmasıdır.
Yani, duvar koşulu yanlışa dönerse, devam edecek ve başka bir şey yapacaktır.
Ancak bir kırılma olursa, tüm bu şeyden kopacak ve sekizinci hatta gidecektir.
Burada, yanında çok sık göremeyeceğiniz küçük bir püf noktası var.
Peki, ama bunun yürütüleceğinden emin olmak istediğinizde else'in kullanıldığı özel bir durum
var mı?
Yalnızca bir break deyimi yoksa, yalnızca döngü break deyimi olmadan yaptığı her şeyi yapmayı bitirmişse.
Biraz ara verelim ve döngüleri biraz daha keşfedelim.