Oldu.
Belə ki, indi bir şey haqqında danışmaq edək proqramlaşdırma həqiqətən faydalı
şərti hesabatları.
Belə ki, şərti ifadələr proqramları imkan verir
qərarlar qəbul etmək və müxtəlif etmək yol, bir şey çəngəllər
Mən az əvvəl alluded dəyişənlərin dəyərləri asılı olaraq,
və ya əsasında nə istifadəçi giriş at proqramçı, command line,
və ya tez varsa ya kimi bir şey.
C müxtəlif yollarla bir neçə var şərti ifadələr ifadə edən
biz də bəzən bir zəng edəcək Sizin proqramları şərti filialı.
Və bu bəzi baxmaq üçün gedir sıfırdan sizə olduqca tanış,
belə ki, biz hətta çəkmək lazımdır , yan-yana yalnız
sizin baş ki bənzətməsi edə bilərsiniz.
>> Belə ki, Varsa olduqca əgər şərti sadə.
Siz geri əgər Burada sağ danışıq
ki, hexagon edir siz doldurmaq bilər mavi ifadə aşağı siçan əgər ilə
və ya x az 10 olduqda, ya kimi bir şey.
Və sonra, əgər x, az 10 idi və ya siçan əslində əgər, aşağı,
daxilində kodu bütün puzzle parça icra olardı.
Uyğun hər şey ki, C forma daxilində.
>> Eynilə, biz var orada sol, əgər.
Boolean ifadə varsa, Mən yalnız istifadə edirəm ki,
Boolean biri üçün bir əvəz kimi biz əvvəllər müzakirə ifadələri,
açıq buruq brace, yaxın buruq brace.
Belə ki, açıq buruq hesab brace və qapalı buruq brace
sendviç kimi sort analoji sağ əgər blok təsiri
Sıfırdan.
>> Boolean ifadə əgər əgər şərhdə, doğru
kod sonra bütün xətləri qıvrım aşırma arasında
məqsədilə icra edəcək üstdən-aşağı.
Boolean ifadə əgər yalan alacağıq
hər şeyə keçmək arasında qıvrım aşırma, çünki biz yalnız
yol ki, çəngəl aşağı getmək istəyirəm əgər Boolean ifadə doğrudur.
>> Biz bu bir addım bilər Daha başqa əgər ilə.
Belə ki, bu Scratch blok edir bir olduqca oxşar
biz istisna olmaqla, yalnız ikinci əvvəl gördüm Bu əsasən iki müxtəlif yolları edir
nə haqqında.
Siçan aşağı idi ki, və ya x əgər, az 10 idi
biz arasında var hər şeyi edəcəyik ilk çəngəl, ilk C.,
>> Əks halda, siçan, əgər up, və ya x 10 az deyil,
ikinci setdə hər şeyi edəcək.
Və siz görmək nə analoji var burada C. Əgər Boolean ifadə,
arasında stuff edə ilk qıvrım aşırma seçin.
Else arasında stuff edə ikinci qıvrım aşırma seçin.
Boolean Belə ki ifadə alacağıq, doğrudur
İlk setdə arasında var nə.
Boolean ifadə əgər yalan, başqa tetiklemek ki,
və biz nə nin edəcəyini qıvrım aşırma ikinci set.
Yenə alt üst, bütün aşırma arasında xətləri.
>> C, yaratmaq mümkündür bir if-else if-else zəncir.
Əslində ola bilər, əgər-başqa if-else əgər-başqa belə və əgər, və s, və
haqqında.
Not, bu tələb blokları yuva.
Siz əgər-başqa əlavə və siz idi başqa daxilində başqa bir qoymaq,
və s, və bu cür var bir nested və mürəkkəb.
Amma C, biz bunu yoxdur.
Biz, həqiqətən, yalnız ola bilər bu kimi bir zəncir.
Yenə, bütün gözləyə bilər kimi Bu filial gəlmir.
Siz yalnız heç getmək bilər filialının biri aşağı.
Bu doğrudur.
Əks halda, bu doğru deyil.
Əks halda, bu yoxdur.
Belə ki, bu filial dörd Məsələn gəlmir.
Bu if-else if-başqa zəncir var.
>> Bu, baxmayaraq ki mümkün deyil və bəzən çox faydalı,
bir zəncir deyil yaratmaq qarşılıqlı eksklüziv filialları.
Bu, məsələn, yalnız üçüncü və dördüncü filialları gəlmir.
Bu ola bilər ki, ola bilər ilk şərtlərinə cavab,
və təmin edə bilər İkinci şərt,
və təmin edə bilər üçüncü vəziyyətdə olan halda
Siz ilk filialı aşağı getmək olardı, sonra bir ikinci şöbəsini enmək,
sonra üçüncü filialı aşağı getmək olardı.
Və ya bəlkə siz ilk cavab vəziyyəti, ikinci şərt,
lakin siz qane etmir Üçüncü şərt.
Bu halda siz ilk enmək filialı və ikinci filialı,
və sonra dördüncü filialı,
>> Bunun səbəbi başqa ki, yalnız yaxın məcburidir edəcək.
Belə ki, var, baxmayaraq ki, başqa burada ki,
mütləq qarşılıqlı yaratmaq deyil hər şey eksklüziv zəncir.
Bu, yalnız ifadə var Orada Boolean ilə
ifadə 3 edəcəyik ki başqa qarşılıqlı eksklüziv.
Belə ki, mümkün deyil, və bəzən olduqca faydalı,
Dediyim kimi, bir zəncir yaratmaq qarşılıqlı müstəsna deyil filialları.
Fərqli bir nəzər salaq şərti cür, hansı
Siz Not əvvəl görmədim.
Deyilən bir şey var switch bəyanat.
switch bəyanat Bu, çünki cür səliqəli
imkan verir ki, şərti bəyanat Siz fərqli hallarda müəyyən etmək üçün
yerinə Boolean əsaslanaraq ifadələri sizin üçün qərar qəbul etmək.
Belə ki, məsələn, deyək Bu proqram var ki,
Mən istifadəçi xahiş edirəm Mənə daxil edir.
Belə ki, deyirəm, int x =) (int almaq, və hələ tanış değilseniz,
int almaq bir funksiyası var də, CS50 kitabxana daxil
Siz cs50.h # daxil əgər, belə ki, lazımdır giriş Int (alın) və bütün onun
cousins-- GetFloat, GetString, və s.
Əsasən bir hər funksiyası alın biz artıq müzakirə etdik data növü.
>> Belə ki Int x GetInt bərabərdir.
Əsasən neler Mən terminalında deyiləm.
Mən bir sıra yazın istifadəçi soruşuram.
>> Və burada mən keçid alıram edirəm nə asılı olaraq
istifadəçi tez-da çap nə.
Onlar bir tipli Belə ki, mən bir çap.
Və sonra mən pozub.
Onlar iki yazın, mən iki çap.
Və sonra mən pozub.
Bu vacibdir Hər bir halda arasında qırmaq
əks halda vasitəsilə düşəcək çünki.
Mən heç bir olmasaydı belə orada fasilələri, və istifadəçi
tipli bir, o, hər nə olardı sorry, bir, iki, üç çap olardı.
Bu doğru, qəribə davranış növü var?
Siz belə hesab edə bilər.
Amma əslində, bəzi hallarda harada var Bu olduqca faydalı şey ola bilər.
Belə ki, burada bir keçid bir misal var Mən fasilələri buraxmaq bəyanat.
Amma məqsədilə bunu.
>> Belə ki, nə burada olur?
Ikinci düşünün.
Siz hətta fasilə video edə bilərsiniz.
>> Nə burada olur istifadəçi dörd?
Belə ki, giriş üçün istifadəçi xahiş etdik.
Onlar dəyər 4 təmin edir.
Hesab edirəm ki, nə çap olur zaman?
Əvvəlki slide var idi Bütün hallarda arasında fasilələri.
Və belə ki, yalnız ki çap dörd və sonra dayandırmaq.
Lakin bu halda, bu olmayacaq.
Nə baş verəcək sizə var Hər bir halda vasitəsilə düşəcək.
>> Belə ki, bu halda mənim hallarda təşkil etdik belə bir şəkildə ki, istifadəçi 4 əgər,
Mən çap edəcək dörd, üç, iki, bir, off partladılması.
Onlar 5 tipli varsa, mən başlayacaq və beş eyni şey.
Onlar 1 tipli varsa, mən yalnız partlayış bir off yoxdur.
>> Bu halda, belə ki, mən istifadə edirəm bir keçid cür ağılla belə
Mən düşmək istəyirlər ki, Bütün hallarda vasitəsilə.
Amma, ümumiyyətlə, siz yəqin ki, çalışırıq Onların bütün arasında qırmaq istəyirik,
Siz bir vəziyyət halda sen bu kimi
cür faktı yararlanarak will ki, ara vermədən hallarda vasitəsilə düşür.
Belə ki, əsas ikinci var şərti hesabatlarının növləri.
? olan son: Mən Burada C kodu iki parçalarını var.
Sol, One və sağ biridir.
sol, bir olmalıdır yəqin ki, sizin üçün olduqca tanış olun.
>> Mən Int x.
Mən yəqin ki, olmalıdır istifadəçi xahiş
baxan mýsýn bu, yəqin ki Int x olmalıdır GetInt, və ya kimi bir şey bərabərdir.
Və sonra mən qərar qəbul edirəm.
Bir Boolean ifadə əgər doğru, dəyəri 5 x təyin.
Əks halda, dəyəri 6 x təyin.
>> Sol, yəqin ki, olmalıdır Bizim müzakirə olduqca tanış
yalnız bir an əvvəl Else əgər.
Bildiyiniz üçün sürpriz olacaq sağ xətt ki,
eyni şey yoxdur?
>> Belə ki, bu adlanır: və ya bəzən ternary operator çağırıb.
Və bu olduqca sərin var.
Bu adətən bir cute oyun kimi istifadə olunur.
>> Amma bu imkan verir nə edir nə həqiqətən kiçik ilə Else bir halda biclik,
həqiqətən trivially qısa şərti filialları.
Siz, ümumiyyətlə, istifadə deyil: əgər hər set arasında kod altı xətləri idi
bir qıvrım aşırma.
Amma yalnız əgər tez qərar qəbul,
Siz bir şey olacaq əgər və ya digər və çox sadə,
Bu necə bir nümunə ola bilər bunu? ternary operator.
Belə ki Int x ifadə bərabərdir?
suala sonra şey mark X nə dəyəri
ifadə doğruysa olacaq.
>> sonra şey colon nə X dəyəri
ifadəsi yalan idi olardı.
Beləliklə, mən özüm xahiş edirəm, ifadə doğrudur?
Əgər, dəyəri 5 x təyin.
Bu deyilsə, dəyəri 6 x təyin.
Yenə kimi dedim.
Bu adətən yalnız bir cute oyun deyil.
Və bəzən olmaq əgər həqiqətən rahat,
görünür, çünki bu edəcəyik Sizin proqramları sərin cür.
Ümumiyyətlə mən onu təqdim edirəm İndi belə tanış olduğunuzda
Siz onu görmək əgər.
Amma əlbəttə ki, yoxdur bilirik Sizin kodu hər hansı bir onu yazmaq üçün.
Amma bir şey ilə tanış olmaq, siz mütləq qarşılaşa bilərsiniz, çünki
burada kodu parçalarını və orada bu: sintaksis,
Ternary operator AKA, istifadə olunur.
>> Belə ki, tez xülasə nə conditionals var
və variantları hansılardır Siz var C. sizə varsa və əgər-başqa,
və əgər başqa, əgər Et Cetera.
Siz Boolean ifadələr istifadə edə bilərsiniz olanlar üçün qərarlar qəbul etmək.
>> Keçid hesabatları ilə istifadə diskret hallarda qərar qəbul etmək.
Bu əgər xüsusilə, deyərdim bir və ya üç, əgər bu iki, və ya əgər,
Mən bu şey, və ya lazımdır Bu şey, və ya bu şey.
Və: əvəz etmək üçün istifadə edilə bilər çox sadə, əgər-başqa filialları,
və ya zəncirlər etmək-başqa əgər Sizin kodu bir az xülya baxmaq.
>> Mən Doug Lloyd edirəm.
Bu CS50 edir.