## 14. if, else, if, else,...

Bir önceki engelli atlama alıştırmasında üç seçimlik vermek istediğimizden dolayı (bitir, git veya zıpla) iç içe iki tane if/else kullanmamız gerekti. Buda yazılan kodun içe içe yazılmasını mecbur hale getirdi. Reeborg'a 10 ayrı seçimlik vermemiz gerekseydi ne olurdu; kodlar içe içe yazılacağından okunması bir hayli zor olacaktı. Bu durumu ortadan kaldırmak için Guido van Rossum, Python'un yaratıcısı, else den sonra kullanılan if leri temsil etmek için elif adında bir komut hazırlamıştır. elif komutu else if in kısaltılmışıdır. Bu yeni komut yardımıyla az önceki kod aşağıdaki gibi yazılabilir:

    def move_jump_or_finish():
        if next_to_beeper():
            turn_off()
        elif front_is_clear():
            move()
        else:
            jump_one_hurdle()

Üç seçimlik olduğunu şimdi daha rahat görebiliyoruz, seçimlikler aynı hizada yazılmışlar. else den sonraki komutun çalıştırılabilmesi için kendisinden önce gelen tüm şartların (next_to_beeper ve front_is_clear) False olması gerekir. Daha fazla seçimliğimiz olsaydı tek yapmamız gereken yeni elif 'ler eklemek olacaktı.

    def move_jump_or_finish():
        if next_to_beeper():
            turn_off()
        elif front_is_clear():
            move()
        elif right_is_clear(): # her zaman false
            pass
        else:
            jump_one_hurdle()

Reeborg en alt duvarın üstünde hareket ettiğinden sağında her zaman bir duvar vardır. Bu nedenle `right_is_clear()` her zaman False sonucunu verir ve pass (Phytonda hiç bir şey yapma anlamına gelir) komutu hiç bir zaman yerine getirilmez. Bunun yerine`left_is_clear()` kullanılsaydı True değerini alacağından Reeborg takılıp kalacak ve hiç bir şey yapmayacaktı. Bunu deneyin!

### Sıra sizde

if, elif, else kullanarak yeni bir program yazın bu program önceki iki alıştırmadaki engellerle çalıştığı gibi aşağıdaki şekildeki engellerle de çalışabilsin. (dünya dosyası hurdles3.wld).

Beni dinle yoksa ... or else .... - - Doğru değil Not true!?