Else, if, elif komutları

pic1

Resimlerde göreceğiniz gibi if ve elif arasındaki farkı çözümleyemedim. Yardımcı olur musunuz lütfen.

Yani demek istediğim if yerine elif koysamda sonuç değişmeyecekti.

elif ifadesi kendisinden önce başlayan if ifadesine bağlı olarak çalışır. if ifadesi içerisindeki koşul doğru (true) ise elif ifadesine bakılmaz. if ifadesindeki koşul yanlış (false) ise bu sefer de elif içindeki koşula bakılır.

if den sonra yeniden bir if ifadesi oluşturduğunuzda, bu iki ayrı ifadeler birbirinden bağımsız olarak değerlendirilir. Yani birinin true ya da false olmasının diğeri ile bir alakası yoktur.

Aşağıdaki iki örneği inceleyin, çalıştırıp sonuçlarını gözlemleyin.

x = 10

if (x==10):
    print("1. koşula uygun")
    
elif (x<11):
    print("2. koşula uygun")
x = 10

if (x==10):
    print("1. koşula uygun")
    
if (x<11):
    print("2. koşula uygun")
1 Beğeni

elifi kişisel olarak kullanmıyorum. Ama öyle bir an geliyor ki “Bu niye hata verdi ki her şey kusursuz.” diyorum ve çözüm elif kullanmak oluyor. Bir örnek vereyim:

if(sayı//4==0):
    print(sayı//4)
if(sayı//2==0):
    print(sayı//2)
else:
    print(sayı)

Varsayalım senaryo olarak tek bir ifadenin yazdırılmasını istiyorum. İşte o zaman 2. if yerine elif kullanmam gerekir. Aksi takdirde 8 gibi bir sayı için iki tane ifade yazdırılıyor.

Bu örnek çok istediğimi yansıtmıyor daha iyisini bulursam buraya yazacağım.

if : Eğer belirlediğim durum gerçekleşirse şunu yap.
elif : If bloğu çalışmaz da şöyle bir şey olursa bunu yap
else : Bu if ve elif bloklarının hiçbiri çalışmazsa şunu yap


elif'i, else if gibi düşünün. else deyimi koşulların hiçbiri sağlanmazsa çalışır.
else if deyimi de if sağlanmazsa (else) ve eğer şöyle bir durum söz konusuysa (if) şunu yap demek oluyor.
Yani else deyimi bütün if ve elif bloklarına bakıp hiçbir bloğun çalışmadığını görünce çalışıyor ya.
elif deyimi de if bloğuna bakıp if bloğunun çalışmadığına karar verdiği zaman başka bir durum sorgulama aşamasına geçiyor ve eğer o durum sağlanırsa altındaki kodlar çalışıyor.
Yani elif deyimi önce if'in sağlanıp sağlanmadığına bakıyor. Eğer sağlanmamışsa kendisi yeni bir koşul tanımlıyor


Koşullu ifadeler if bloğuyla başlamalıdır diye de ekleyeyim son olarak. Bunun sebebini bu deyimlerin anlamlarından da görebiliriz zaten.
elif, else if demek. Eğer if sağlanmazsa …
else de bütün durumlar sağlanmazsa …
Gördüğün gibi bu elif ve else blokları da öncelikle if'in varlığına bağlı.


x = 5
print(x==5)
#bu size True döndürür.

print(x>3)
# bu da size True döndürür.

Mesela:

x = 10 
if x == 10:
   print("if çalıştı")
if x > 5:
   print("ikinci if çalıştı")

# bu kodların sonucunda iki if bloğu da çalışır. Çünkü ikisi de True döndürür.

ama elif ile yaparsak :

x = 10  
if x == 10: # x değişkeni 10'a eşit ise ...
   print("if çalıştı")
elif x > 5: # if bloğu çalışmadıysa "ve" x değişkeni 5'ten büyük ise ...
   print("elif bloğu çalıştı")

# Burada, elif bloğu diyor ki : Eğer if sağlanmazsa (False ise) ben çalışacağım. 
# Bu yüzden if koşulu True olduğu için ve dolayısıyla çalışacağı için elif bir şey yapmayacak 

fark budur.


Daha ayrıntılı ve fazla bilgi için

3 Beğeni