Tekrar hoş geldiniz.
Hadi eğlenceli bir egzersiz yapalım.
Bir oyun şirketi tarafından işe alındık ve bir büyücü oyunu yaratıyoruz.
Ve bu sihirbaz oyununda kullanıcının profilinde sihirbaz var ve şimdilik bunu yanlış olarak ayarlayacağız.
Bizde de var.
Uzman.
Ve bu kullanıcının bu oyunda uzman olup olmadığı.
Şimdilik doğru olarak bırakacağız.
Ve sonra.
Hmm.
Hadi.
Bunu burada yapalım.
Her ikisinin de olup olmadığını kontrol etmenizi istiyorum.
Sihirbaz.
Ve uzman.
Ve eğer durum buysa, eğer doğruysa, o zaman basmanızı istiyorum.
Sen usta bir sihirbazsın.
Ve ayrıca, kontrol etmeni istiyorum.
Eğer.
Sihirbaz.
Ama uzman değil.
Eğer durum buysa, sadece yazdırmak istiyorum.
En azından oraya gidiyorsun.
Ve son olarak, sihirbaz olup olmadığınızı kontrol edelim.
Söylemek istiyorum.
Sihirli güçlere ihtiyacın var.
Şimdi bu koşullu mantığı oluşturmak için mantıksal operatörler hakkında öğrendiklerinizi kullanmanızı istiyorum.
İsterseniz videoyu duraklatabilir ve bir dalgalanmada kendiniz deneyebilirsiniz.
Aksi takdirde, bir cevapla devam edeceğim.
Ancak şu ana kadar videoları ve alıştırmaları takip ettiyseniz bunu oldukça kolay bir şekilde çözebilmeniz
gerekir.
Öyleyse usta bir sihirbaz olduğunuzu söylediğimiz ilkiyle başlayalım.
O yüzden "eğer" diyeceğim.
Uzman ve sihirbaz.
Yazdıracağım.
Siz usta bir sihirbazsınız, bu yüzden bunu kopyalayacağım ve baskı diyeceğim.
Sen usta bir sihirbazsın.
Burada çok çılgın bir şey yok.
Ve sonra bir sonrakini söyleyeceğim.
Eğer ya da istersem eğer bile diyebilirim.
Ve yine bu, neyi tercih ettiğinize karar verebileceğiniz bir şeydir.
Genellikle bu durumda ilkiyle aynı konseptin parçasıysa l'i kullanmayı severim.
Evet, hala ne tür bir kullanıcı olduğunu anlamaya çalışıyoruz.
Bu yüzden canlı kullanacağız ve bir sihirbaz olup olmadığını kontrol etmek istiyorsak L diyeceğiz.
Yani bu bir sihirbaz.
Bu yüzden bunun doğru olup olmadığını kontrol edeceğiz.
Ama aynı zamanda kontrol etmek de istiyoruz.
Eğer.
Uzman değilim.
Şimdi, bunu nasıl yapacağız?
Yani, kısa devreyi kullanıp uzman olduğunu söyleyebiliriz.
Ve bu yanlış olsa bile.
Burada doğruyu bulabiliriz çünkü sihirbaz olarak kısa devre yapıp bu kısmı yazdırırsanız, en azından oraya ulaşırsınız.
Çünkü buradaki ilginç nokta, bu kod bloğunun her ikisi de doğruysa asla çalışmayacak olmasıdır
çünkü ilk if bloğunda bunu kontrol ediyoruz, böylece bu doğru olduğu anda LF'yi tamamen yok sayacağız.
Yani bunu yapabiliriz.
Ancak bunu okumak biraz zor çünkü gerçekten düşünmem gerekiyor.
Koda geri dönersem ya da başka biri koduma bakarsa, sihirbaz olup olmadığını kontrol ettiğimi ancak uzman olup olmadığını
kontrol etmediğimi yorumlamadığım sürece net değil.
Çünkü bu asla çalışmayacak.
Eğer sihirbaz sahteyse, o zaman kontrol ettikleri şey budur.
Bunu söylemenin bile biraz kafa karıştırıcı olduğunu biliyorum.
Bu yüzden böyle bir şey kullanmayı tercih ediyorum.
Kullanmak ve kullanmamak.
Ve bu çok daha iyi okunuyor, değil mi?
Bu çok daha mantıklı.
Hey, eğer bu kişi bir uzman ve sihirbazsa, bunu yapın.
Aksi takdirde, bu kişi bir sihirbazsa ve uzman değilse, bunu yazdırın.
Çok güzel okunuyor.
Ve evet, bunu yapabilirsiniz çünkü hatırlayın, boolean ifadesi ne olursa olsun basitçe kontrol etmek ve tersine çevirmek
olarak değil.
Yani bu hala bir boolean olarak değerlendirilir ve kontrol edilebilir.
Tamam.
Sonuncuyu bitirelim.
Eğer bir sihirbaz değilseniz, sihirli güçlere ihtiyacınız vardır.
Peki burayı nasıl kontrol edeceğiz?
Bir L daha yapabiliriz ve değil diyebiliriz.
Sihirbaz.
Ve eğer bu şekilde çalıştırır ve yazdır dersem ve sadece buraya kopyalarsak, sihirli güçlere ihtiyacınız olur.
Kod bloklarını görebilmek için şimdilik yorumları kaldıralım.
Ve programımızı test edeceğiz.
Umarım düzgün kodlamışızdır.
Umarım hata yoktur.
Ama bir bakalım.
Eğer bunu çalıştırırsam.
Sihirli güçlere ihtiyacın var.
Nedenmiş o?
Pekala.
Eğer sihirbaz sahteyse, bunların hiçbiri işe yaramayacaktır.
Bunu true olarak değiştirirsem ve çalıştır'a tıklarsam ne olur?
Tamam.
Ben usta bir sihirbazım çünkü bir sihirbaz olduğum kadar bir uzmanım da.
Bunu yanlışa çevirirsem ve Çalıştır'a tıklarsam ne olur?
Hey, en azından oraya gidiyorsun.
Ben bir sihirbazım, ama henüz bir uzman değilim.
Hâlâ öyleyim.
Hala oyunumu geliştirmem gerekiyor.
Şimdi, benden farklı bir yanıt almış olabilirsiniz ve bunu doğru yapmanın birçok yolu var.
Bir L ifadesi kullanabilirdin.
Kullanabilirdiniz veya koşullu mantık, yalnızca sizin için değil, kodunuzu okuyan diğer insanlar için de anlamlı
olan kod yazmakla ilgilidir.
Buradaki fikir, aşırı derecede zeki olmak ya da kısa devre konusunda gerçekten endişelenmek değildir.
Evet, daha performanslı olabilir, ancak bir makine o kadar güçlüdür ki, belki de okunabilirliği
kaybettiğinizde orada küçük bir optimizasyon genellikle buna değmez.
Bu yüzden kodunuzun İngilizce gibi okunduğundan emin olmak istersiniz.
Ve bu, açıkçası, birçok yeni başlayan programcının anlamakta zorlandığı, mümkün olduğunca akıllı olmaya çalıştıkları,
mümkün olan en kısa satırlarda mümkün olduğunca az kod yazdıkları, bunun yerine okunabilirliğe
odaklanmanız gereken bir konudur.
Çünkü anlaşılması kolay bir kod, iyi bir geliştiricinin işaretidir.
Umarım buna baktığınızda, evet, bu oldukça kolay diye düşünüyorsunuzdur.
Yani, bunların hepsi mantıklı ama tek yol bu değil.
Belki de benim iyi okuma anlayışım sizinkinden farklıdır.
Buradaki fikir, her birimizin kodumuzu basit ve güzel hale getirmek için elimizden gelenin en iyisini yapmasıdır ve programlamada
tek bir doğru cevap yoktur.
Bir sorunu çözmenin pek çok yolu vardır, ancak önemli olan sorunu basit ve okunabilir bir şekilde çözmektir.
Umarım eğlenirsiniz ve bir sonrakinde görüşürüz.