1 00:00:00,000 --> 00:00:05,140 2 00:00:05,140 --> 00:00:05,640 Gerai. 3 00:00:05,640 --> 00:00:08,330 Taigi, dabar pakalbėkime apie ką nors tikrai naudinga programming-- 4 00:00:08,330 --> 00:00:09,914 sąlyginiai teiginiai. 5 00:00:09,914 --> 00:00:11,830 Taigi sąlyginiai išsireiškimai Leiskite savo programas 6 00:00:11,830 --> 00:00:14,538 priimti sprendimus ir imtis skiriasi šakės Kelių, kažkas 7 00:00:14,538 --> 00:00:17,670 Aš užsiminė šiek tiek anksčiau, priklausomai nuo kintamųjų reikšmių, 8 00:00:17,670 --> 00:00:20,990 ar pagal tai, ką vartotojas žaliavas programuotojas, komandų eilutėje, 9 00:00:20,990 --> 00:00:23,130 arba jei turite eilutę ar kažkas panašaus. 10 00:00:23,130 --> 00:00:26,690 C turi skirtingais būdais į porą išreikšti sąlyginius išraiškas, kuris 11 00:00:26,690 --> 00:00:29,911 mes taip pat kartais vadiname sąlyginė šaka savo programose. 12 00:00:29,911 --> 00:00:32,910 Ir kai kurie iš jų ketiname ieškoti gana pažįstamas nuo nulio, 13 00:00:32,910 --> 00:00:35,190 todėl mes net traukti juos iki greta, tik 14 00:00:35,190 --> 00:00:38,170 jūs galite padaryti, kad analogiją savo galvą. 15 00:00:38,170 --> 00:00:41,250 >> Taigi, if-- jei yra gana paprasta sąlyga. 16 00:00:41,250 --> 00:00:43,560 Jei prisimenate iš įbrėžimams ant čia 17 00:00:43,560 --> 00:00:50,000 galima užpildyti, kuri yra šešiakampis su mėlyna išraiškos jei pele žemyn 18 00:00:50,000 --> 00:00:53,010 arba jeigu x yra mažiau nei 10, ar kažkas panašaus. 19 00:00:53,010 --> 00:00:57,390 Ir tada, jei x buvo mažesnis nei 10, arba jei pelės buvo iš tikrųjų, žemyn, 20 00:00:57,390 --> 00:01:01,140 visi viduje kodą įspūdį būtų įvykdyti. 21 00:01:01,140 --> 00:01:03,720 Visi dalykai, kad tilptų viduje, kad C formos. 22 00:01:03,720 --> 00:01:07,200 >> Be to, mes turime jei ten kairėje. 23 00:01:07,200 --> 00:01:09,210 Jei Būlio išraiškos, kurios aš tik naudojant 24 00:01:09,210 --> 00:01:13,010 kaip vieną iš Būlio pakaitalas išraiškas Mes anksčiau svarstėme, 25 00:01:13,010 --> 00:01:15,240 atvira garbanotas petnešomis, netoli garbanotas petnešomis. 26 00:01:15,240 --> 00:01:17,720 Taigi manau, atviros Curly petnešomis ir uždara garbanotas petnešomis 27 00:01:17,720 --> 00:01:22,720 kaip rūšiuoti analogiškas sumuštinis poveikis, jei bloko dešinėje 28 00:01:22,720 --> 00:01:24,070 nuo nulio. 29 00:01:24,070 --> 00:01:28,680 >> Jei Būlio išraiškos IF teiginys yra teisingas, 30 00:01:28,680 --> 00:01:30,900 Tada visi kodo eilučių tarp klamrami 31 00:01:30,900 --> 00:01:33,870 atliks tam nuo viršaus iki apačios. 32 00:01:33,870 --> 00:01:35,700 Jei Būlio išraiškos yra klaidinga, mes 33 00:01:35,700 --> 00:01:38,610 praleisti viskas tarp garbanotieji petnešų, nes mes tik 34 00:01:38,610 --> 00:01:44,570 noriu eiti šiuo šakutė kelyje jei Bulio logikos išraiška yra teisinga. 35 00:01:44,570 --> 00:01:48,540 >> Mes galime priimti vieną žingsnį toliau su, jei kitur. 36 00:01:48,540 --> 00:01:50,820 Taigi tai įbrėžimams blokas gana panašus į tą, 37 00:01:50,820 --> 00:01:55,884 mes matėme tik prieš sekundę, išskyrus jis trunka dvi skirtingus kelius, pagrįstus 38 00:01:55,884 --> 00:01:56,550 apie tai, kas vyksta. 39 00:01:56,550 --> 00:02:00,420 Taigi, jei pelė buvo žemyn, arba jeigu x buvo mažesnis nei 10, 40 00:02:00,420 --> 00:02:04,780 mes padarysime viską, kad yra tarp kad pirmasis šakutė, kad pirmasis C., 41 00:02:04,780 --> 00:02:08,430 >> Priešingu atveju, jei pelė yra aukštyn, arba X yra ne mažesnis negu 10, 42 00:02:08,430 --> 00:02:10,460 mes padarysime viską, kad antrąjį. 43 00:02:10,460 --> 00:02:15,010 Ir tai panašu į tai, ką matote čia C Jei Būlio išraiškos, 44 00:02:15,010 --> 00:02:17,910 padaryti tarp stuff Pirmoji garbanotas petnešos. 45 00:02:17,910 --> 00:02:20,550 Kita, atlikite tarp stuff Antrasis rinkinys garbanotas petnešos. 46 00:02:20,550 --> 00:02:22,080 Taigi, jei Būlio išraiška yra tiesa, mes 47 00:02:22,080 --> 00:02:23,580 daryti viską, kas yra tarp pirmojo rinkinio. 48 00:02:23,580 --> 00:02:27,480 Jei Bulio logikos išraiška yra klaidinga, kad būtų sukelti kitur, 49 00:02:27,480 --> 00:02:30,100 ir mes tai visada kas yra antrasis rinkinys garbanotas petnešos. 50 00:02:30,100 --> 00:02:34,190 Vėlgi, iš viršaus į apačią, visi linijos tarp atramų. 51 00:02:34,190 --> 00:02:38,130 >> C, tai galima sukurti IF-else if-kitur grandinės. 52 00:02:38,130 --> 00:02:42,000 Be to, jūs galite turėti, jei-else if-kitur jei-kitur, jei, ir taip toliau, ir taip toliau ir taip 53 00:02:42,000 --> 00:02:42,720 ant. 54 00:02:42,720 --> 00:02:44,660 Be nulio, tai reikia lizdus blokus. 55 00:02:44,660 --> 00:02:48,280 Jūs pridėti IF-kitur, ir jums teko įdėti dar vieną viduje kitur, 56 00:02:48,280 --> 00:02:51,110 ir tt, ir ji gavo natūra zagnieżdżonych ir sudėtingas. 57 00:02:51,110 --> 00:02:52,450 Tačiau, C, mes neturime daryti. 58 00:02:52,450 --> 00:02:55,300 Mes iš tikrųjų gali tiesiog tai būtų kaip ši grandinė. 59 00:02:55,300 --> 00:02:58,350 Vėlgi, kaip galima tikėtis, visi Šie filialai yra tarpusavyje nesuderinami. 60 00:02:58,350 --> 00:03:00,750 Galite tik kada nors eiti žemyn vieną iš šakos. 61 00:03:00,750 --> 00:03:02,270 Jei tai tiesa. 62 00:03:02,270 --> 00:03:03,930 Priešingu atveju, jei tai yra tiesa. 63 00:03:03,930 --> 00:03:05,700 Priešingu atveju, jei tai yra tiesa. 64 00:03:05,700 --> 00:03:07,120 Priešingu atveju, tai padaryti. 65 00:03:07,120 --> 00:03:11,010 Taigi visi šiame šakų keturių pavyzdys yra tarpusavyje nesuderinami. 66 00:03:11,010 --> 00:03:14,900 Tai jei-else if-kitur grandinės. 67 00:03:14,900 --> 00:03:17,580 >> Tai yra įmanoma, nors, o kartais labai naudinga, 68 00:03:17,580 --> 00:03:20,950 sukurti grandinę nėra nesuderinami filialai. 69 00:03:20,950 --> 00:03:24,600 Šiame pavyzdyje, tik trečias ir ketvirta filialai yra tarpusavyje nesuderinami. 70 00:03:24,600 --> 00:03:27,450 Tai gali būti, kad jums galėtų įvykdyta pirmoji sąlyga, 71 00:03:27,450 --> 00:03:29,396 ir jūs galėtų patenkinti Antroji sąlyga, 72 00:03:29,396 --> 00:03:31,770 ir tu gali patenkinti Trečiasis condition-- tokiu atveju 73 00:03:31,770 --> 00:03:35,270 jums būtų eiti į pirmąjį filialą, tada jūs einate žemyn antrą filialą, 74 00:03:35,270 --> 00:03:37,000 tada jums reikės eiti į trečiąjį filialą. 75 00:03:37,000 --> 00:03:40,450 Arba galbūt jūs patenkinti pirmas sąlyga, ir antroji sąlyga, 76 00:03:40,450 --> 00:03:42,770 bet jūs neturite patenkinti trečioji sąlyga. 77 00:03:42,770 --> 00:03:46,230 Tokiu atveju jums eiti pirmas filialas ir antras filialas, 78 00:03:46,230 --> 00:03:48,040 ir tada ketvirtą šaka, 79 00:03:48,040 --> 00:03:51,392 >> Dėl šios priežasties, yra ta, kad kita bus privalomi tik artimiausias jei. 80 00:03:51,392 --> 00:03:53,100 Taigi, nors ten kitur čia, kad 81 00:03:53,100 --> 00:03:56,490 nebūtinai sukurti abipusiai išskirtinė grandinės visko. 82 00:03:56,490 --> 00:04:00,890 Tai tik žodžiai ten su Būlio 83 00:04:00,890 --> 00:04:05,040 išraiška 3-- tai toks nesuderinami su kita. 84 00:04:05,040 --> 00:04:07,580 Taigi, ji yra įmanoma, ir kartais labai naudinga, 85 00:04:07,580 --> 00:04:11,772 kaip sakiau, sukurti grandinę nėra tarpusavyje nesuderinami filialai. 86 00:04:11,772 --> 00:04:14,230 Paimkime pažvelgti kitaip rūšies sąlyga, kuri 87 00:04:14,230 --> 00:04:17,392 jūs dar nematėte anksčiau nulio. 88 00:04:17,392 --> 00:04:19,369 Yra kažkas pavadino jungiklis pareiškimas. 89 00:04:19,369 --> 00:04:21,410 Jungiklis teiginys yra rūšies tvarkingas, nes tai 90 00:04:21,410 --> 00:04:25,930 sąlyginis teiginys, kad leidžia galite nurodyti skirtingus atvejus, 91 00:04:25,930 --> 00:04:28,926 užuot pasikliaujant Būlio posakiai priimti sprendimus už jus. 92 00:04:28,926 --> 00:04:31,050 Taigi, pavyzdžiui, tarkim kad aš turiu šią programą, 93 00:04:31,050 --> 00:04:34,110 ir aš klausia vartotojui siekiant prisidėti prie manęs. 94 00:04:34,110 --> 00:04:37,170 Taigi sakau, int x = Gauk Int () ir jei nesate susipažinę dar, 95 00:04:37,170 --> 00:04:40,190 gauti int yra funkcija, kuri yra taip pat įtrauktas į CS50 bibliotekoje, 96 00:04:40,190 --> 00:04:44,610 Taigi, jei jūs #include CS50.H turėsite Prieiga prie Gauk INT () ir visi jo 97 00:04:44,610 --> 00:04:46,840 cousins-- GetFloat, GetString ir pan. 98 00:04:46,840 --> 00:04:52,590 Iš esmės vienas Gauk funkciją už kiekvieną duomenų tipas, kad mes jau aptarė. 99 00:04:52,590 --> 00:04:53,970 >> Taigi Žiniasklaida x lygus GetInt. 100 00:04:53,970 --> 00:04:56,390 Iš esmės tai, kas vyksta yra aš į terminalą. 101 00:04:56,390 --> 00:04:58,790 Aš klausia vartotojui įveskite numerį. 102 00:04:58,790 --> 00:05:02,300 >> Ir čia aš perjungimo ką darau, priklausomai nuo 103 00:05:02,300 --> 00:05:05,060 apie tai, ką vartotojas įvedėte eilutėje. 104 00:05:05,060 --> 00:05:09,147 Taigi, jei jie įvedėte vieną, aš atsispausdinti vienas. 105 00:05:09,147 --> 00:05:09,855 Ir tada aš pertrauka. 106 00:05:09,855 --> 00:05:12,590 107 00:05:12,590 --> 00:05:15,510 Jei jie tipo du, aš atsispausdinti du. 108 00:05:15,510 --> 00:05:16,690 Ir tada aš pertrauka. 109 00:05:16,690 --> 00:05:19,060 Svarbu pertrauka tarp kiekvienu atveju 110 00:05:19,060 --> 00:05:20,890 nes kitaip jums teks per. 111 00:05:20,890 --> 00:05:23,380 Taigi, jei aš neturėjo jokių pertraukas ten, ir vartotojas 112 00:05:23,380 --> 00:05:31,380 įvestos vienas, kas nutiktų, tai būtų atspausdinti vieną, du, trys, atsiprašau. 113 00:05:31,380 --> 00:05:33,099 Tai tipo keistą elgesį, tiesa? 114 00:05:33,099 --> 00:05:33,890 Jūs manote, kad. 115 00:05:33,890 --> 00:05:36,480 Tačiau yra atvejų, kai iš tikrųjų tai gali būti gana naudingas dalykas. 116 00:05:36,480 --> 00:05:39,730 Taigi čia dar viena jungikliu pavyzdys pareiškimas, kur aš praleisti pertraukas. 117 00:05:39,730 --> 00:05:42,030 Bet aš tai padaryti tyčia. 118 00:05:42,030 --> 00:05:43,030 >> Taigi, kas atsitinka čia? 119 00:05:43,030 --> 00:05:43,821 Pamąstyk sekundę. 120 00:05:43,821 --> 00:05:45,960 Jūs netgi galite nori pristabdyti vaizdo įrašą. 121 00:05:45,960 --> 00:05:48,230 >> Kas nutinka čia, jei vartotojas įveda keturi? 122 00:05:48,230 --> 00:05:51,190 123 00:05:51,190 --> 00:05:53,860 Taigi aš paprašė įvesties vartotoją. 124 00:05:53,860 --> 00:05:56,560 Ir jie teikia vertės 4. 125 00:05:56,560 --> 00:05:59,545 Kas gauna atspausdintas kai aš tai padaryti? 126 00:05:59,545 --> 00:06:02,170 Dėl ankstesnės skaidrės, ten buvo pertraukos tarp visų atvejų. 127 00:06:02,170 --> 00:06:04,750 Ir todėl jis tiesiog spausdinti keturių ir tada sustoti. 128 00:06:04,750 --> 00:06:06,610 Bet šiuo atveju, tai ne. 129 00:06:06,610 --> 00:06:10,700 Kas nutiks yra jums kris per kiekvienu atveju. 130 00:06:10,700 --> 00:06:14,890 >> Taigi šiuo atveju aš organizavo savo bylas tokiu būdu, kad, jei vartotojas įveda 4, 131 00:06:14,890 --> 00:06:20,070 Aš spausdinti keturi, trys, du, vienas, pakilkite. 132 00:06:20,070 --> 00:06:22,780 Ir jei jie įvedėte 5, aš norėčiau pradėti penkių ir daryti tą patį. 133 00:06:22,780 --> 00:06:26,410 Jei jie įvedėte 1, aš norėčiau tiesiog padaryti vieną, pakilkite. 134 00:06:26,410 --> 00:06:28,715 >> Taigi šiuo atveju, aš naudoju jungiklis rūšies gudriai taip 135 00:06:28,715 --> 00:06:30,804 kad aš ketinu kris per visas atvejais. 136 00:06:30,804 --> 00:06:33,720 Bet paprastai jūs tikriausiai ruošiesi nori pertrauka tarp visi iš jų, 137 00:06:33,720 --> 00:06:36,090 nebent turite situaciją patiko šį vieną, kur jūs 138 00:06:36,090 --> 00:06:40,081 rūšies pritraukimu į tai, kad jūs rudenį per atvejais be pertraukos. 139 00:06:40,081 --> 00:06:42,830 Taigi, kad stambių antra rūšių sąlyginių ataskaitose. 140 00:06:42,830 --> 00:06:47,139 Paskutinis, kuris yra:? Taigi aš turi du fragmentus C kodą čia. 141 00:06:47,139 --> 00:06:48,680 Vienas kairėje ir vienas dešinėje. 142 00:06:48,680 --> 00:06:52,330 Vienas kairėje turėtų tikriausiai bus gana pažįstamas. 143 00:06:52,330 --> 00:06:55,110 >> Turiu Int x. 144 00:06:55,110 --> 00:06:57,167 Ir aš tikriausiai turėtų paprašė vartotoją 145 00:06:57,167 --> 00:07:00,250 for-- tai tikriausiai turėtų būti Žiniasklaida x lygus GetInt, ar kažkas panašaus. 146 00:07:00,250 --> 00:07:03,030 147 00:07:03,030 --> 00:07:05,240 Ir tada aš priimant sprendimą. 148 00:07:05,240 --> 00:07:11,700 Jei kai Būlio išraiška yra tiesa, priskirti x vertės 5. 149 00:07:11,700 --> 00:07:13,590 Priešingu atveju, priskirti x vertės 6 d. 150 00:07:13,590 --> 00:07:16,548 >> Tai kairėje tikriausiai turėtų būti gana susipažinę iš mūsų diskusijos 151 00:07:16,548 --> 00:07:18,160 IF kita vos prieš akimirką. 152 00:07:18,160 --> 00:07:20,535 Ar norėtumėte nustebinti žinoti kad dešinėje linija 153 00:07:20,535 --> 00:07:22,310 daro tą patį dalyką? 154 00:07:22,310 --> 00:07:26,140 >> Taigi tai vadinama:? Ar kartais vadinamas trijų komponentų operatorius. 155 00:07:26,140 --> 00:07:27,450 Ir tai gana kietas. 156 00:07:27,450 --> 00:07:29,110 Jis dažniausiai naudojamas kaip mielas apgauti. 157 00:07:29,110 --> 00:07:35,777 >> Bet ką jis leidžia jums padaryti, tai imituoti IF kita su tikrai maža, 158 00:07:35,777 --> 00:07:37,610 tikrai banaliai trumpas sąlyginės filialai. 159 00:07:37,610 --> 00:07:41,470 Jūs paprastai nebūtų naudoti? Jei jus turėjo šešis eilutes kodo tarp kiekvieno rinkinio 160 00:07:41,470 --> 00:07:42,569 nuo garbanotas petnešos. 161 00:07:42,569 --> 00:07:44,360 Bet jei jūs tiesiog priėmimo greitą sprendimą, 162 00:07:44,360 --> 00:07:47,520 jei jūs ketinate daryti vieną dalyką arba kitos, ir tai labai paprastas, 163 00:07:47,520 --> 00:07:52,240 tai gali būti išdėstyta, kaip pavyzdys tai padaryti su: į trijų komponentų operatorių. 164 00:07:52,240 --> 00:07:56,940 Taigi Žiniasklaida x lygus išraiška? 165 00:07:56,940 --> 00:07:59,470 Po klausimo dalykas ženklas yra tai, ką x vertė 166 00:07:59,470 --> 00:08:02,690 bus, jei išraiška yra teisinga. 167 00:08:02,690 --> 00:08:05,330 >> Po dalykas Colon yra tai, ką x vertė 168 00:08:05,330 --> 00:08:07,990 būtų, jei išraiška yra klaidinga. 169 00:08:07,990 --> 00:08:11,510 Taigi, aš klausia savęs, yra pasakymas tiesa? 170 00:08:11,510 --> 00:08:13,870 Jei taip, tai priskirti x vertės 5. 171 00:08:13,870 --> 00:08:16,619 Jei taip nėra, priskirti x vertės 6 d. 172 00:08:16,619 --> 00:08:17,410 Vėlgi, kaip ir sakiau. 173 00:08:17,410 --> 00:08:18,670 Tai paprastai tik mielas triukas. 174 00:08:18,670 --> 00:08:20,430 Ir kartais, jei jūs tapsite tikrai patogus su juo, 175 00:08:20,430 --> 00:08:22,820 jums tai padaryti, nes jis atrodo tipo kietas savo programose. 176 00:08:22,820 --> 00:08:25,710 Paprastai aš pateikti jį dabar jūs taip esate susipažinę su ja 177 00:08:25,710 --> 00:08:26,990 jei jūs matote jį. 178 00:08:26,990 --> 00:08:30,080 Bet tikrai žinau, jūs neturite ją parašyti bet savo kodą. 179 00:08:30,080 --> 00:08:33,246 Bet tai yra kažkas turi būti susipažinę su, nes jūs tikrai susidurti 180 00:08:33,246 --> 00:08:36,130 kodo fragmentus čia ir ten, kur tai? sintaksė, 181 00:08:36,130 --> 00:08:39,120 Dar žinomas kaip trijų komponentų operatoriaus, yra naudojama. 182 00:08:39,120 --> 00:08:40,960 >> Taigi greitai santrauka kas Conditionals yra, 183 00:08:40,960 --> 00:08:44,210 ir kokios yra galimybės Jums C turite, jei ir jei-kitur, 184 00:08:44,210 --> 00:08:46,860 ir, jei kitas, jei, ir taip toliau. 185 00:08:46,860 --> 00:08:50,880 Jūs galite naudoti loginius išraiškas tiems, priimti sprendimus. 186 00:08:50,880 --> 00:08:53,720 >> Su jungikliu ataskaitų naudoti diskrečiųjų atvejai priimti sprendimus. 187 00:08:53,720 --> 00:08:57,540 Galima būtų konkrečiai pasakyti, jei tai viena arba, jei tai du, arba jei tai trys, 188 00:08:57,540 --> 00:09:00,870 Aš tai padaryti pats, arba šis dalykas, ar šis dalykas. 189 00:09:00,870 --> 00:09:04,660 Ir:? Gali būti naudojama pakeisti labai paprasta, jei else filialai, 190 00:09:04,660 --> 00:09:08,490 arba jei else grandinės padaryti Jūsų kodas atrodyti šiek tiek fantazijos. 191 00:09:08,490 --> 00:09:09,250 >> Aš Doug Lloyd. 192 00:09:09,250 --> 00:09:11,410 Ir tai yra CS50. 193 00:09:11,410 --> 00:09:12,959