Pekala.
Yani şimdi bir şeye hakkında konuşalım programming-- gerçekten yararlı
koşullu ifadeler.
Yani koşullu ifadeler programlarınızı izin
kararlar ve farklı almaya Yol, bir şey çatal
Ben, biraz önce bahsettiğin değişkenlerin değerlerine bağlı olarak,
ya dayalı neyi kullanıcı girişi de programcı, komut satırında,
veya bir istemi varsa Ya da bunun gibi bir şey.
C farklı şekillerde bir çift vardır , koşullu ifadeler ifade eden
daha da bazen arayacak programlarınızda koşullu dallanma.
Ve bunlardan bazıları bakmak için gidiyoruz sıfırdan sizin için oldukça tanıdık,
bu yüzden bile onları çekin edeceğiz , yan tarafı yukarı sadece
Kafanda o benzetme yapabilirsiniz.
>> Bu yüzden, ve-- oldukça ise koşullu basit.
Eğer gelen hatırlayacak olursak Burada sağ tarafta çizik
Bu altıgen olduğunu sen doldurabilir mavi ifadenin aşağı fare eğer birlikte
veya x az 10 ise, Ya da bunun gibi bir şey.
Ve bundan sonra da, X, en az 10 olduğu ya da fare aslında ise, aşağı,
içindeki tüm kodu bulmaca parçası yürütülür.
Uygun her şey O C şeklin içinde.
>> Benzer şekilde, var Orada solda ise.
Boole ifadesi ise, Ben sadece kullanıyorum hangi
Boolean biri için bir ikame olarak Daha önce tartışılan ifadeler,
açık kaşlı ayraç, yakın kaşlı ayraç.
Yani açık Kıvırcık düşünüyorum brace ve kapalı kaşlı ayraç
sandviç olarak sıralamak benzer Sağdaki ise bloğun etkisi
Sıfırdan.
>> Boole ifadesi ise eğer açıklamada, doğrudur
kod sonra tüm hatlar kaşlı ayraçlar arasında
sırayla yürütecek baştan aşağı.
Boole ifadesi ise yanlış, biz olacak
her şeyin üzerinde atlamak arasında kaşlı, çünkü biz sadece
Yolun o çatal aşağı gitmek istiyorum Boolean ifadesi doğrudur.
>> Biz bu bir adım atabilirsiniz ayrıca else if ile.
Yani bu Scratch blok birine oldukça benzer
Biz hariç sadece bir saniye önce gördüm o dayalı iki farklı yolları alır
yaşananlara.
Fare aşağı Yani eğer, veya x ise en az 10 olduğu
Biz arasında var olan her şeyi yapacağız birinci çatal, ilk C.
>> Aksi takdirde, bir fare ise, yukarı veya x, 10'dan daha az olan,
ikinci sette her şeyi yapacağız.
Ve bu gördüklerinizi benzer var Burada C. Eğer Boole ifadesi için,
arasındaki şeyler İlk küme ayraçları kümesi.
Else arasındaki şeyler İkinci küme ayraçları kümesi.
Boolean Yani eğer ifadesi yaparız, doğrudur
İlk sette aramda yaparım.
Boole ifadesi ise Yanlış, o başka tetikleyebilir,
ve biz ne olursa olsun 's yapacağını küme ayraçları ikinci seti.
Yine, yukarıdan aşağıya, tüm parantezler arasındaki çizgiler.
>> C, bu oluşturmak mümkündür Bir if-else if-else zinciri.
Aslında olabilir if-else if-else if-else vesaire vesaire eğer, ve böylece, ve
üzerinde.
Scratch, bu gerekli blokları yuvalama.
Bir if-else ekleyin ve vardı Else içine başka bir koyun,
ve böylece, ve bu tür var iç içe ve karmaşık.
Ama C, bunu yapmak zorunda değilsiniz.
Biz aslında sadece olabilir Böyle bir zincir.
Yine, tüm tahmin edebileceğiniz gibi Bu dallar birbirini dışlar.
Sadece hiç gidebilirsiniz şube biri aşağı.
Eğer bu doğrudur.
Aksi takdirde, eğer bu doğruysa.
Aksi takdirde, bunu.
Yani bu şube dört örnek birbirini dışlar.
Bir if-else if-else zincir.
>> Bu, olsa mümkündür ve bazen de çok yararlıdır,
bir zincir oluşturmak için değil, birbirini dışlayan dalları.
Bu örnekte, sadece üçüncü ve Dördüncü dalları birbirini dışlar.
Bu yapabildin ki olabilir İlk şartını yerine,
ve tatmin olabilir İkinci şart,
ve tatmin olabilir Üçüncü condition-- durumda
Eğer ilk şubesini aşağı gider, Daha sonra ikinci bir şube aşağı gitmek,
sonra üçüncü şubesini aşağı gider.
Ya da belki ilk tatmin durum ve ikinci koşul,
ama tatmin etmiyor Üçüncü koşul.
Bu durumda ilk aşağı gitmek şube ve ikinci dal,
ve daha sonra dördüncü şube,
>> Bunun nedeni başka olduğunu sadece en yakın bağlanır.
Yani orada olsa bile Burada başka bir o
mutlaka karşılıklı yaratmaz her şeyin seçkin zincir.
Sadece deyim Orada BooleANDile
ifadesi 3-- işte ile başka birbirini dışlayan.
Bu nedenle mümkündür ve bazen oldukça yararlıdır,
dediğim gibi, bir zincir oluşturmak için birbirini dışlayan değil dalları.
En farklı bir göz atalım koşullu tür, hangi
Eğer Scratch önce görmedim.
Denilen bir şey var switch deyimi.
Switch deyimi ise o çünkü tür temiz
sağlayan bir koşullu deyim Eğer, farklı durumları belirtmek için
Bunun yerine Boolean güvenmek ifadeler sizin için kararlar.
Yani, örneğin, diyelim ki Ben bu programa sahip olduğunu,
ve ben kullanıcı soruyorum Bana girdi sağlamak için.
Yani diyorum, int x =) (Int alın ve henüz aşina değilseniz,
int olsun bir işlevdir Ayrıca, CS50 kütüphanede yer
Eğer CS50.H #include yüzden eğer gerekecek erişim Int (Al) ve tüm onun
cousins-- GetFloat, GetString, vb.
Temelde tek her işlevini alın zaten tartıştığımız veri türü.
>> Yani Int x GETINT eşittir.
Temelde neler Ben terminalde olduğum.
Ben bir sayı yazmak için kullanıcı soruyorum.
>> Ve burada geçiş yapıyorum Ben ne yapıyorum, bağlı
Kullanıcı isteminde yazdıklarınızı üzerinde.
Onlar bir yazdıysanız Yani, bir tane çıktı.
Ve sonra bölünürler.
Onlar iki yazarsanız, iki yazdırın.
Ve sonra bölünürler.
Bu önemlidir her durumda arasında bölmek
aksi takdirde içinden düşecek çünkü.
Ben herhangi yoktu eğer öyleyse Orada sonları ve kullanıcı
yazılı biri, öyle ne olur üzgünüm, bir, iki, üç basacaktır.
Bu doğru, garip davranış türüdür?
Sen öyle düşünebilirsin.
Ama aslında bazı durumlarda nerede vardır Bu oldukça kullanışlı bir şey olabilir.
Yani burada bir anahtarın başka bir örnek Ben sonları ihmal beyanı.
Ama bilerek yapıyorum.
>> Peki burada ne olur?
Bir saniye düşünün.
Hatta videoyu duraklatmak isteyebilirsiniz.
>> Ya burada olur kullanıcı türleri dört?
Yani giriş için kullanıcı sordunuz.
Ve onlar değer 4 sağlarlar.
Ben ne baskılı aldığında?
Bir önceki slaytta vardı Tüm olguların arasındaki sonları.
Ve böylece sadece olur Yazdırmak dört ve daha sonra durur.
Ancak bu durumda, böyle olmaz.
Ne olur sen olduğunu her durumda doğru düşecek.
>> Yani bu durumda benim davaları organize ettik bu şekilde kullanıcı tipleri 4 ise,
Ben basacaktır dört, üç, iki, bir, havalanmak.
Onlar 5 yazdıysanız, ben başlamak istiyorum ve beşte aynı şeyi yapmak.
Onlar 1 yazdıysanız, yapardım Sadece, patlama birini kapalı yapın.
>> Bu durumda Yani, istimal Bir anahtar tür akıllıca yani
Ben düşmek niyetinde emin Tüm olgularda aracılığıyla.
Ama genelde muhtemelen olacaksın hepsi arasında kırmak istiyorum
Eğer bir durum yoksa sen bunun gibi
tür gerçeğini yararlanarak size olacak o ara vermeden durumlarda aracılığıyla düşer.
Böylece büyük ikinci bulunuyor koşullu ifadelerin türleri.
? Ki son geçerli: Yani Burada C kodu iki parçacıkları var.
Soldaki biri ve sağ tarafta bir.
Soldaki gerekir muhtemelen sizin için oldukça tanıdık.
>> Ben Int x var.
Ve ben muhtemelen gerektiğini kullanıcı istediler
for-- bu muhtemelen Int x olmalı GETINT, ya da onun gibi bir şey eşittir.
Ve sonra bir karar var.
Bazı Boole ifadesi ise Gerçek değer 5 x atayın.
Aksi takdirde, değeri 6 x atayın.
>> Soldaki Muhtemelen olmalı Bizim tartışma oldukça tanıdık
sadece bir an önce Else edin.
Eğer bilmek için sürpriz olurdu Sağdaki hattı olduğunu
aynı şeyi yapar?
>> ? Yani bu denir: ya da bazen üçlü operatör denir.
Ve bu oldukça serin.
Genellikle sevimli bir hile olarak kullanılır.
>> Ama izin verir ne olduğunu yapmak gerçekten küçük olan Else If bir simüle,
Gerçekten trivially kısa koşullu dallar.
Genellikle kullanmak olmaz:? Eğer her set arasında kod altı çizgiler vardı
bir kaşlı.
Ama sadece eğer hızlı karar verme,
Eğer bir şey yapmak için gidiyoruz eğer ya da diğer ve çok basit,
Bu nasıl bir örnek olabilir ile bunu:? üçlü operatörü.
Yani Int x ifadesini eşittir?
Sorudan sonra bir şey mark adlı x kıymeti ne
ifadesi doğruysa olacak.
>> Sonra bir şey Kolon ne x kullanıcısının değeri
ifadesi yanlış olsaydı olurdu.
Yani kendime soruyorum, ifade doğrudur?
Eğer öyleyse, değeri 5 x atayın.
O değilse, değer 6 x atayın.
Yine, böyle dedim.
Bu genellikle sadece şirin bir hiledir.
Ve bazen kalırsanız Gerçekten onunla rahat,
görünüyor, çünkü bu yapacağım programlarınızda serin tür.
Genellikle bunu sunma ediyorum Şimdi bu yüzden onunla bilginiz
Eğer görürseniz.
Ama kesinlikle yok biliyorum kodunuzda herhangi yazmaya.
Ama bir şey aşina olmak, kesinlikle karşılaşacağınız çünkü
Burada kod parçacıkları ve Orada nerede bu:? sözdizimi,
Üçlü operatör AKA kullanılır.
>> Üzerinde çok hızlı özeti Ne koşul vardır
ve seçenekler nelerdir Şu ana kadar C size ise ve if-else,
ve eğer else if, vesaire.
Sen Boole ifadeleri kullanabilirsiniz olanlar için kararlar.
>> Switch ifadeleri ile kullanmak ayrık olgular kararlar.
Bu kadar eğer özellikle söyleyebilirim biri, ya da üç ise bu iki, ya da eğer,
Ben bu işi yapmak veya edeceğiz bu şey, ya da bu şey.
Ve: değiştirmek için kullanılacak olabilir Çok basit if-else dalları,
veya zincirler yapmak-else if kodunuzu biraz fantezi görünüyorsun.
>> Ben Doug Lloyd değilim.
Bu CS50 olup.