`while True:` kodunun anlamı nedir?

Arkadaşlar merhaba.

Aklıma geldi de, hani döngüye alırken while True: kullanırız ve bu işlem sürekli devam eder ya. Peki buna ne deniyor? Bu True bir şart mıdır? Tam olarak neyi ifade ediyor da bu döngü sürekli devam ediyor?

Sen dur diyene kadar koşan ata benzer. At ya hani bu arada dizginlemek, dinlendirmek gerekir yoksa kontrolden çıkar çeşitli zararlara yol açabilir.

while 1:
while 1>0:

Gibi çeşitli kırbaçlama yöntemleri vardır.

2 Beğeni

Hocam bunu biliyorum ama neden True? Ney True oluyor da işlem devam ediyor?

while (1 > 0): gibi düşünün.
(1 > 0) = True olacaktır.
Öyleyse while (1 > 0) dediğimiz şey zaten while True oluyor.

1 Beğeni

Bir while statement’ı:

while boolean:
  #process

boolean True olduğu sürece döngü çalışacaktır.


a = int(input())
while a > 5:
  #process

Mesela a > 5 condition'ı ile de aslında burada bir boolean ifade ediyoruz çünkü condition'lar boolean değer döndürürler.


Yani aslında while'ın yanına yazdıklarınız günün sonunda ya False ya da True oluyor ve True ise döngü çalışıyor. Dolayısıyla siz while True yazarak döngünün çalışıp çalışmayacağını bir şarta bağlamak yerine döngünün durumunu elle belirlemiş gibi oluyorsunuz.
Umarım anlatabilmişimdir.

3 Beğeni

Evet hocam şimdi anladım, teşekkür ederim.

1 Beğeni

Aslında while bir expression kabul ediyor condition değil de tam olarak
Şuradan bakabilirsin:

2 Beğeni

Hayır, statement.


Örneğin lambda fonksiyonlarda while kullanamazsınız çünkü lambda fonksiyonlara statement yazamazsınız ama expression yazabilirsiniz.
lambda arguments : expression

2 Beğeni

ama biz burada while koşuluna yazılan kısımdan bahsediyoruz.

Tamam while bir statement aşağıdaki gibi ama bir expression sonucu bekliyor. Aslında oraya True yazarsan direk sonucu yazmış oluyorsun ama expression olmuş olmaz.

while (x>10)

şuradaki tanım gibi :
The while statement executes an Expression and a Statement repeatedly until the value of the Expression is false.

https://docs.oracle.com/javase/specs/jls/se8/html/jls-14.html#jls-14.12

3 Beğeni

while, condition olarak bir expression kabul ediyor. @Huseyin_AKKAYA doğru söylemiş.

2 Beğeni

Pardon, yanlış anlamışım.

1 Beğeni