[Linux-programlama] Re: Python Case veya Switch deyimi?

---------

[Linux-programlama] Re: Python Case veya Switch deyimi?

From: Necmettin Begiter <necmettin.begiter_at_gmail.com>
Date: Sun, 21 Sep 2008 01:11:23 +0300
Message-Id: <200809210111.24050.necmettin.begiter@gmail.com>

On 21 September 2008 Sunday 00:36:01 Mucibirahman ÝLBUÐA wrote:
> Selamlar,
> Çok enteresandýr! yeni farkettim. Case ya da switch benzeri bir deyim
> Python'da yok?! Çok garip! if-else kullanmaktan baþka bir yöntem yok
> mudur? Yada neden bnun karþýlýðý Python'da yok?
>

"Neden yok?" biraz Python'un felsefesiyle ilgili bir konu. Felsefe konusuna girmeyeceðim çünkü bütün programcýlarýn dahil olduðu bir grup olsaydý ve programlama dillerinin felsefesini oturup konuþmaya baþlasalardý, herhalde 50 farklý felsefe çýkardý, dolayýsýyla felsefe (daha doðrusu hangi yaklaþým daha iyi sorusu) en azýndan programcýlýk alanýnda tartýþýlmasý çok da anlamlý olmayan ya da sonu olmayan bir konu.

Geçiyorum, switch-case ile if-elif-elseif-else yaklaþýmlarý arasýnda bir karþýlaþtýrma yapalým:
- Ýþlemci kodu olarak baktýðýnýzda sonuçta ayný ya da çok yakýn yükteler. Switch-case yaklaþýmýnda da, if-elif-else de de bir sürü CMP-JMP kullanýlýyor.
- Switch-case ile tek deðiþkeni karþýlaþtýrýyorsunuz (aksini hatýrlamýyorum þu an için) ve karmaþýk karþýlaþtýrma iþlemlerinde týkanýyor, if-elseif-else ile ise çok daha geniþ kapsamlý karþýlaþtýrmalar yapabiliyorsunuz. Aþaðýda çok basit bir de örnek verdim, hangi dil diye sormayýn, piyasada bir sürü var, birini seçin.
- Kod yazýmý olarak da aralarýnda büyük bir fark yok (onu yapabilen öbürünü de yapabilir babýnda;).

Switch ($a)
        {
        5: hede
                end
        8..20: hödö
        else: print "hadi caným, sende!"
        }

if a=5:
        hede
elif b>7 and a<21:
        hödö
else:
        print "hadi len!"

-- 
Necmettin Begiter

_______________________________________________
Linux-programlama mailing list
Linux-programlama_at_liste.linux.org.tr
http://liste.linux.org.tr/mailman/listinfo/linux-programlama
Received on Sun 21 Sep 2008 - 00:32:32 EEST

---------

Bu arsiv hypermail 2.2.0 tarafindan uretilmistir.