Python içe içe while döngüsü kırma

dodgerblue

Hectopat
Katılım
31 Ağustos 2018
Mesajlar
26
Python'da iç içe while döngüsü olan bir program yazıyorum. En son döngüye geçince tüm döngülerin sona ermesini istiyorum. Nasıl yapacağımı bir türlü buladım örnek:
A=input("seçim 1")
While True:
----If("a=="doğru""):
----Print("doğru seçimi yaptınız")
----B=input("seçim2")
----While True:
--------If(b=="yakın"):
--------Print("yakını seçtiniz")
--------Elif(b=="uzak"):
--------Print("uzağı seçtiniz")
--------Break(Burada break kulladığım zaman sadece içinde bulunan while döngüsünü kırıyor yani bağlı olduğu bir üst while dögüsü tekrar çalışıyor)
----Elif(a=="yanlıs"):
----Print("yanlış seçimi yaptınız")
"Uzak" seçimi yapıldığında ekrana yazı yazdırıp tüm döngüleri sonlandırmak istiyorum.
 
elif b kolonunun en altına break girerseniz döngüyü kırar. Ayrıca kolonları yanlış kullanıyorsunuz sanırım. Her if ve while bloğundan sonra bir tab bırakarak kolona girmeniz gerekiyor.
 
Python'da iç içe while döngüsü olan bir program yazıyorum. En son döngüye geçince tüm döngülerin sona ermesini istiyorum. Nasıl yapacağımı bir türlü buladım örnek:
A=input("seçim 1")
While True:
----If("a=="doğru""):
----Print("doğru seçimi yaptınız")
----B=input("seçim2")
----While True:
--------If(b=="yakın"):
--------Print("yakını seçtiniz")
--------Elif(b=="uzak"):
--------Print("uzağı seçtiniz")
--------Break(Burada break kulladığım zaman sadece içinde bulunan while döngüsünü kırıyor yani bağlı olduğu bir üst while dögüsü tekrar çalışıyor)
----Elif(a=="yanlıs"):
----Print("yanlış seçimi yaptınız")
"Uzak" seçimi yapıldığında ekrana yazı yazdırıp tüm döngüleri sonlandırmak istiyorum.

2 çözümü var; arkadaşın da dediği gibi üstteki While ile aynı kod bloğunda olacak şekilde en alta bir break daha ekleyebilirsiniz. İkinci olarak ise os veya sys modüllerinin exit() ve quit() fonksiyonlarını kullanabilirsiniz.
 
GOTO tarzında bir şey varsa onu da kullanabilirsiniz. Programlamacılar önermiyor bu yöntemi ama, bazen lazım olabiliyor.
 
Elif b kolonunun en altına break girerseniz döngüyü kırar. Ayrıca kolonları yanlış kullanıyorsunuz sanırım. Her if ve while bloğundan sonra bir Tab bırakarak kolona girmeniz gerekiyor.

Tab bloğu ile kullanıyorum kodları elle yazdığım için burada öyle olmuş syntax sorunu yok sorum mantıksal.

2 çözümü var; arkadaşın da dediği gibi üstteki while ile aynı kod bloğunda olacak şekilde en alta bir break daha ekleyebilirsiniz. İkinci olarak ise OS veya SYS modüllerinin exit() ve quit() fonksiyonlarını kullanabilirsiniz.

Harici olarak bir değişken tanımlayıp değişkenin değerini true atayıp son döngüde false yaparak sonlandırdım. İlginiz için teşekkür ederim konudan yararlanmak isteyenler için sizin bilgilerinizin yanına bulduğum bir yöntemin örneğini ekliyorum.
Dongu = true.
While dongu:
----X = input(">>> ")
----While true:
--------- If X == "çık":
--------------Dongu = false
-------------- Break.
 

Yeni konular

Geri
Yukarı