1 00:00:00,000 --> 00:00:05,140 2 00:00:05,140 --> 00:00:05,640 Në rregull. 3 00:00:05,640 --> 00:00:08,330 Pra, tani le të flasim për diçka të vërtetë të dobishme në programming-- 4 00:00:08,330 --> 00:00:09,914 Deklaratat e kushtëzuara. 5 00:00:09,914 --> 00:00:11,830 Shprehjet Pra kushtëzuara lejojë programet tuaja 6 00:00:11,830 --> 00:00:14,538 për të marrë vendime dhe për të marrë të ndryshme forks në rrugë, diçka 7 00:00:14,538 --> 00:00:17,670 Unë aludoi për pak më herët, varësisht nga vlerat e variablave, 8 00:00:17,670 --> 00:00:20,990 ose në bazë të asaj që inputet e përdoruesit në programues, në rreshtin e komandave, 9 00:00:20,990 --> 00:00:23,130 ose në qoftë se ju keni një të shpejtë ose diçka të tillë. 10 00:00:23,130 --> 00:00:26,690 C ka disa mënyra të ndryshme për të shprehin shprehje të kushtëzuara, të cilat 11 00:00:26,690 --> 00:00:29,911 ne gjithashtu ndonjëherë do të thërrasë një Dega e kushtëzuar në programet tuaja. 12 00:00:29,911 --> 00:00:32,910 Dhe disa prej tyre do të duken mjaft të njohura për ju nga e para, 13 00:00:32,910 --> 00:00:35,190 kështu që ne do të tërheqë ata edhe deri krah për krah, vetëm 14 00:00:35,190 --> 00:00:38,170 ju mund të bëni atë analogji në kokën tuaj. 15 00:00:38,170 --> 00:00:41,250 >> Pra, if-- nëse është një goxha thjeshtë kushtëzuar. 16 00:00:41,250 --> 00:00:43,560 Nëse ju kujtohet nga zeroja në të djathtë këtu 17 00:00:43,560 --> 00:00:50,000 ju mund të plotësoni në atë që është gjashtëkëndësh me një shprehje blu nëse miut poshtë 18 00:00:50,000 --> 00:00:53,010 ose kur x është më pak se 10, ose diçka të tillë. 19 00:00:53,010 --> 00:00:57,390 Dhe pastaj, në qoftë se x është më pak se 10, ose në qoftë se miu ishte në fakt, poshtë, 20 00:00:57,390 --> 00:01:01,140 të gjithë i kodit brendësi të copë mister do të ekzekutojë. 21 00:01:01,140 --> 00:01:03,720 Të gjitha gjërat që përshtaten brenda atë formë C. 22 00:01:03,720 --> 00:01:07,200 >> Në mënyrë të ngjashme, nuk kemi në qoftë se në të majtë atje. 23 00:01:07,200 --> 00:01:09,210 Nëse shprehje Boolean, që unë jam vetëm duke përdorur 24 00:01:09,210 --> 00:01:13,010 si një zëvendësim për një nga Boolean Shprehjet ne diskutuar më herët, 25 00:01:13,010 --> 00:01:15,240 mbajtëse hapur kaçurrel, mbajtëse afër kaçurrel. 26 00:01:15,240 --> 00:01:17,720 Pra, mendoj se e kaçurrel hapur mbajtëse dhe mbajtëse mbyllur kaçurrel 27 00:01:17,720 --> 00:01:22,720 si lloj i analoge me sanduiç Efekti i nëse bllokut në të djathtë 28 00:01:22,720 --> 00:01:24,070 nga e para. 29 00:01:24,070 --> 00:01:28,680 >> Nëse shprehja Boolean në qoftë se deklarata është e vërtetë, 30 00:01:28,680 --> 00:01:30,900 pastaj të gjitha linjat e kodit midis formatimin e teksteve kaçurrel 31 00:01:30,900 --> 00:01:33,870 do të ekzekutojë në mënyrë nga lart poshtë. 32 00:01:33,870 --> 00:01:35,700 Nëse shprehja Boolean është e rreme, ne do të 33 00:01:35,700 --> 00:01:38,610 kaloni mbi çdo gjë në mes formatimin e teksteve kaçurrel, sepse ne vetëm 34 00:01:38,610 --> 00:01:44,570 duan të shkojnë poshtë që pirun në rrugë nëse shprehja Boolean është e vërtetë. 35 00:01:44,570 --> 00:01:48,540 >> Ne mund të marrë këtë hap një më tej me nëse tjetër. 36 00:01:48,540 --> 00:01:50,820 Pra ky bllok Scratch është goxha i ngjashëm me atë 37 00:01:50,820 --> 00:01:55,884 ne pamë vetëm një sekondë më parë, me përjashtim të ai merr dy rrugë të ndryshme në bazë 38 00:01:55,884 --> 00:01:56,550 mbi atë që ndodh. 39 00:01:56,550 --> 00:02:00,420 Pra, nëse miu ishte poshtë, ose kur X është më pak se 10, 40 00:02:00,420 --> 00:02:04,780 ne do të bëjmë çdo gjë që është në mes që pirun së pari, se C. së pari, 41 00:02:04,780 --> 00:02:08,430 >> Përndryshe, nëse miu është lart, ose x është jo më pak se 10, 42 00:02:08,430 --> 00:02:10,460 ne do të bëjmë gjithçka në setin e dytë. 43 00:02:10,460 --> 00:02:15,010 Dhe kjo është analoge me atë që ju shihni këtu për C. Nëse Boolean shprehjes, 44 00:02:15,010 --> 00:02:17,910 bëjë gjëra në mes të vendosur për herë të parë e formatimin e teksteve kaçurrel. 45 00:02:17,910 --> 00:02:20,550 Tjetër, të bëjë gjëra në mes të Grupi i dytë i formatimin e teksteve kaçurrel. 46 00:02:20,550 --> 00:02:22,080 Pra, nëse Boolean shprehje është e vërtetë, ne do të 47 00:02:22,080 --> 00:02:23,580 bëjë çdo gjë që është në mes të grupit të parë. 48 00:02:23,580 --> 00:02:27,480 Nëse shprehja Boolean është rreme, që do të shkaktojë tjetër, 49 00:02:27,480 --> 00:02:30,100 dhe ne do të bëjë çdo gjë në Grupi i dytë i formatimin e teksteve kaçurrel. 50 00:02:30,100 --> 00:02:34,190 Përsëri, të lartë e deri në fund, të gjithë rreshta në mes të formatimin e teksteve. 51 00:02:34,190 --> 00:02:38,130 >> Në C, është e mundur për të krijuar një në qoftë se-tjetër në qoftë se-tjetër zinxhir. 52 00:02:38,130 --> 00:02:42,000 Në të vërtetë ju mund të keni në qoftë se-tjetër në qoftë se-tjetër nëse-tjetër, në qoftë se, dhe kështu me radhë e kështu me radhë e kështu me 53 00:02:42,000 --> 00:02:42,720 në. 54 00:02:42,720 --> 00:02:44,660 Në Scratch, kjo kërkohet shturë blloqe. 55 00:02:44,660 --> 00:02:48,280 Ju shtoni një në qoftë se-tjetër, dhe keni pasur për vënë një tjetër brenda të tjerët, 56 00:02:48,280 --> 00:02:51,110 dhe kështu me radhë, dhe ajo mori lloj i mbivendosur dhe i komplikuar. 57 00:02:51,110 --> 00:02:52,450 Por C, ne nuk kemi për të bërë këtë. 58 00:02:52,450 --> 00:02:55,300 Ne në fakt mund të ketë vetëm ajo të jetë një zinxhir si kjo. 59 00:02:55,300 --> 00:02:58,350 Përsëri, si ju mund të presin, të gjithë këto degë janë reciprokisht ekskluzive. 60 00:02:58,350 --> 00:03:00,750 Ju vetëm mund të ndonjëherë shkojnë poshtë një nga degës. 61 00:03:00,750 --> 00:03:02,270 Nëse kjo është e vërtetë. 62 00:03:02,270 --> 00:03:03,930 Përndryshe, në qoftë se kjo është e vërtetë. 63 00:03:03,930 --> 00:03:05,700 Përndryshe, në qoftë se kjo është e vërtetë. 64 00:03:05,700 --> 00:03:07,120 Përndryshe, e bëjnë këtë. 65 00:03:07,120 --> 00:03:11,010 Pra, të gjithë katër degët në këtë shembull janë reciprokisht ekskluzive. 66 00:03:11,010 --> 00:03:14,900 Kjo është një nëse-tjetër zinxhir nëse-tjetër. 67 00:03:14,900 --> 00:03:17,580 >> Është e mundur edhe pse, dhe nganjëherë shumë të dobishme, 68 00:03:17,580 --> 00:03:20,950 për të krijuar një zinxhir të mos Degët reciprokisht ekskluzive. 69 00:03:20,950 --> 00:03:24,600 Në këtë shembull, vetëm e tretë dhe degët e katërt janë reciprokisht ekskluzive. 70 00:03:24,600 --> 00:03:27,450 Kjo mund të jetë që ju mund të të plotësojë kushtin e parë, 71 00:03:27,450 --> 00:03:29,396 dhe ju mund të kënaqë Kushti i dytë, 72 00:03:29,396 --> 00:03:31,770 dhe ju mund të kënaqë condition-- i tretë në të cilin rast 73 00:03:31,770 --> 00:03:35,270 ju do të shkoni poshtë degën e parë, atëherë ju shkoni poshtë një degë të dytë, 74 00:03:35,270 --> 00:03:37,000 atëherë ju do të shkoni poshtë dega e tretë. 75 00:03:37,000 --> 00:03:40,450 Apo ndoshta ju të kënaqur e parë kusht, dhe gjendja e dyta, 76 00:03:40,450 --> 00:03:42,770 por ju nuk e kënaqin Kushti i tretë. 77 00:03:42,770 --> 00:03:46,230 Në këtë rast ju shkoni poshtë e parë degë dhe dega e dytë, 78 00:03:46,230 --> 00:03:48,040 dhe pastaj dega e katërt, 79 00:03:48,040 --> 00:03:51,392 >> Arsyeja për këtë është se tjetër do të lidhen vetëm më të afërt nëse. 80 00:03:51,392 --> 00:03:53,100 Pra, edhe pse nuk ka një tjetër këtu, që 81 00:03:53,100 --> 00:03:56,490 nuk do të krijojë një reciprokisht zinxhir ekskluzive e çdo gjëje. 82 00:03:56,490 --> 00:04:00,890 Kjo është vetëm shprehja atje me Boolean 83 00:04:00,890 --> 00:04:05,040 shprehje 3-- kjo është ekskluzive reciprokisht me tjetër. 84 00:04:05,040 --> 00:04:07,580 Pra, kjo është e mundur, dhe nganjëherë mjaft të dobishme, 85 00:04:07,580 --> 00:04:11,772 siç thashë, për të krijuar një zinxhir të degë jo reciprokisht ekskluzive. 86 00:04:11,772 --> 00:04:14,230 Le të marrin një vështrim në një tjetër lloj i kushtëzuar, e cila 87 00:04:14,230 --> 00:04:17,392 ju nuk e keni parë më parë në Scratch. 88 00:04:17,392 --> 00:04:19,369 Ka diçka të quajtur deklarata kaloni. 89 00:04:19,369 --> 00:04:21,410 Deklarata switch është lloj i zoti, sepse kjo është 90 00:04:21,410 --> 00:04:25,930 një deklaratë me kusht që lejon ju të specifikojë raste të veçanta, 91 00:04:25,930 --> 00:04:28,926 në vend të duke u mbështetur në Boolean shprehje për të marrë vendime për ju. 92 00:04:28,926 --> 00:04:31,050 Kështu për shembull, le të themi që unë kam këtë program, 93 00:04:31,050 --> 00:04:34,110 dhe unë jam duke kërkuar përdoruesit për të siguruar të dhëna për mua. 94 00:04:34,110 --> 00:04:37,170 Kështu që unë them, int x = Get Int (), dhe në qoftë se ju nuk jeni të njohur akoma, 95 00:04:37,170 --> 00:04:40,190 merrni int është një funksion që është përfshirë edhe në bibliotekë CS50, 96 00:04:40,190 --> 00:04:44,610 kështu që nëse ju #include CS50.H ju do të keni Qasje të Merrni INT () dhe të gjitha të saj 97 00:04:44,610 --> 00:04:46,840 cousins-- GetFloat, GetString, dhe kështu me radhë. 98 00:04:46,840 --> 00:04:52,590 Në thelb një Get funksionin për çdo lloj të dhënat që ne kemi diskutuar tashmë. 99 00:04:52,590 --> 00:04:53,970 >> Pra Int x është e barabartë GetInt. 100 00:04:53,970 --> 00:04:56,390 Në thelb ajo që po ndodh është që unë jam në terminalin. 101 00:04:56,390 --> 00:04:58,790 Unë jam duke kërkuar përdoruesit të shkruani në një numër. 102 00:04:58,790 --> 00:05:02,300 >> Dhe këtu unë jam kalimi çfarë jam duke bërë, në varësi 103 00:05:02,300 --> 00:05:05,060 në atë që përdoruesit shtypur në ftim. 104 00:05:05,060 --> 00:05:09,147 Pra, nëse ata shtypen një, unë të shtypura nga një. 105 00:05:09,147 --> 00:05:09,855 Dhe pastaj unë të thyer. 106 00:05:09,855 --> 00:05:12,590 107 00:05:12,590 --> 00:05:15,510 Nëse ata shkruani dy, unë të shtypura nga dy. 108 00:05:15,510 --> 00:05:16,690 Dhe pastaj unë të thyer. 109 00:05:16,690 --> 00:05:19,060 Është e rëndësishme të pushim mes çdo rast 110 00:05:19,060 --> 00:05:20,890 sepse përndryshe ju do të dështoj. 111 00:05:20,890 --> 00:05:23,380 Pra, nëse unë nuk kam asnjë pushimet atje, dhe përdoruesi 112 00:05:23,380 --> 00:05:31,380 një typed, çfarë do të ndodhë është ajo do të shtypura një, dy, tre, sorry. 113 00:05:31,380 --> 00:05:33,099 Kjo është lloj i sjellje të çuditshme, apo jo? 114 00:05:33,099 --> 00:05:33,890 Ju mund të mendoni kështu. 115 00:05:33,890 --> 00:05:36,480 Por ka në fakt disa raste ku kjo mund të jetë një gjë shumë e dobishme. 116 00:05:36,480 --> 00:05:39,730 Kështu që këtu është një tjetër shembull i një switch Deklarata ku unë harroj prishet. 117 00:05:39,730 --> 00:05:42,030 Por unë bëj atë në qëllim. 118 00:05:42,030 --> 00:05:43,030 >> Pra, çfarë ndodh këtu? 119 00:05:43,030 --> 00:05:43,821 Mendoni për një të dytë. 120 00:05:43,821 --> 00:05:45,960 Ju madje mund të dëshironi të pauzë video. 121 00:05:45,960 --> 00:05:48,230 >> Çfarë ndodh këtu në qoftë se lloje përdorues katër? 122 00:05:48,230 --> 00:05:51,190 123 00:05:51,190 --> 00:05:53,860 Kështu që unë kam kërkuar e përdoruesit për input. 124 00:05:53,860 --> 00:05:56,560 Dhe ato ofrojnë vlerën 4. 125 00:05:56,560 --> 00:05:59,545 Çfarë merr shtypura, kur unë bëj atë? 126 00:05:59,545 --> 00:06:02,170 Në rrëshqitje të mëparshëm, ka pasur prishet në mes të gjitha rastet. 127 00:06:02,170 --> 00:06:04,750 Dhe kështu ajo do të vetëm shtypura katër dhe pastaj ndalet. 128 00:06:04,750 --> 00:06:06,610 Por në këtë rast, ajo nuk do. 129 00:06:06,610 --> 00:06:10,700 Çfarë do të ndodhë është që ju do të bien nëpër çdo rast. 130 00:06:10,700 --> 00:06:14,890 >> Pra, në këtë rast unë kam organizuar rastet e mia në një mënyrë të tillë që në qoftë se llojet e përdoruesve 4, 131 00:06:14,890 --> 00:06:20,070 Unë do të shtypura katër, tre, dy, një, ik. 132 00:06:20,070 --> 00:06:22,780 Dhe në qoftë se ata shtypen 5, unë do të fillojë në pesë dhe të bëjë të njëjtën gjë. 133 00:06:22,780 --> 00:06:26,410 Nëse ata shtypur 1, unë do të vetëm të bëjë një të tillë, ik. 134 00:06:26,410 --> 00:06:28,715 >> Pra, në këtë rast, unë jam duke përdorur një switch lloj i cleverly kështu 135 00:06:28,715 --> 00:06:30,804 që unë kam ndërmend të bjerë nëpër të gjitha rastet. 136 00:06:30,804 --> 00:06:33,720 Por në përgjithësi ju jeni me siguri gonna të duan të thyejnë në mes të gjithë ata, 137 00:06:33,720 --> 00:06:36,090 nëse nuk keni një situatë si ky, ku ju jeni 138 00:06:36,090 --> 00:06:40,081 lloj i leveraging faktin se ju do të bien nëpër rastet e pa pushim. 139 00:06:40,081 --> 00:06:42,830 Pra, kjo është e dyta e madhe llojet e deklaratave të kushtëzuara. 140 00:06:42,830 --> 00:06:47,139 I fundit i cili është: Kështu kanë dy copra të kodit C këtu. 141 00:06:47,139 --> 00:06:48,680 Një në të majtë dhe një në të djathtë. 142 00:06:48,680 --> 00:06:52,330 Një në të majtë duhet ndoshta do të jetë goxha i njohur për ju. 143 00:06:52,330 --> 00:06:55,110 >> Kam Int x. 144 00:06:55,110 --> 00:06:57,167 Dhe unë ndoshta duhet kanë kërkuar përdoruesit 145 00:06:57,167 --> 00:07:00,250 for-- kjo ndoshta duhet të jetë Int x barabartë GetInt, ose diçka të tillë. 146 00:07:00,250 --> 00:07:03,030 147 00:07:03,030 --> 00:07:05,240 Dhe atëherë unë jam duke e bërë një vendim. 148 00:07:05,240 --> 00:07:11,700 Nëse disa shprehje Boolean është vërtetë, të caktojë x vlera 5. 149 00:07:11,700 --> 00:07:13,590 Përndryshe, të caktojë vlerën e x 6. 150 00:07:13,590 --> 00:07:16,548 >> Që në të majtë ndoshta duhet të jetë mjaft të njohur nga diskutimit tonë 151 00:07:16,548 --> 00:07:18,160 i qoftë Tjetër vetëm një moment më parë. 152 00:07:18,160 --> 00:07:20,535 A do të jetë i befasuar për të dini që të vijë në të djathtë 153 00:07:20,535 --> 00:07:22,310 e bën të njëjtën gjë e saktë? 154 00:07:22,310 --> 00:07:26,140 >> Pra, kjo quhet:? Apo ndonjëherë quhet operatori tresh. 155 00:07:26,140 --> 00:07:27,450 Dhe kjo është pretty cool. 156 00:07:27,450 --> 00:07:29,110 Është përdorur zakonisht si një mashtrim bukur. 157 00:07:29,110 --> 00:07:35,777 >> Por ajo që ju lejon të bëni është që të simulojnë një Else nëse me të vërtetë të vogël, 158 00:07:35,777 --> 00:07:37,610 me të vërtetë trivially shkurtër Degët e kushtëzuara. 159 00:07:37,610 --> 00:07:41,470 Ju në përgjithësi nuk do të përdorim:? Nëse ju kishte gjashtë rreshta të kodit midis çdo grup 160 00:07:41,470 --> 00:07:42,569 formatimin e teksteve kaçurrel të. 161 00:07:42,569 --> 00:07:44,360 Por në qoftë se ju jeni vetëm të marrë një vendim të shpejtë, 162 00:07:44,360 --> 00:07:47,520 në qoftë se ju jeni duke shkuar për të bërë një gjë apo të tjera dhe kjo është shumë e thjeshtë, 163 00:07:47,520 --> 00:07:52,240 kjo mund të jetë një shembull se si të të bëjë atë me:? operatorin tresh. 164 00:07:52,240 --> 00:07:56,940 Pra Int x është e barabartë me shprehje? 165 00:07:56,940 --> 00:07:59,470 Gjëja pas pyetjes Mark është vlera e asaj x-së 166 00:07:59,470 --> 00:08:02,690 do të jetë në qoftë se shprehje është e vërtetë. 167 00:08:02,690 --> 00:08:05,330 >> Gjë pas zorrës së trashë është çfarë vlere X-it 168 00:08:05,330 --> 00:08:07,990 do të jetë në qoftë se shprehja ishte e rreme. 169 00:08:07,990 --> 00:08:11,510 Kështu që unë jam pyetur veten, është shprehja e vërtetë? 170 00:08:11,510 --> 00:08:13,870 Nëse kjo është, të caktojë x vlera 5. 171 00:08:13,870 --> 00:08:16,619 Nëse nuk është, të caktojë vlerën e x 6. 172 00:08:16,619 --> 00:08:17,410 Përsëri, si i tha. 173 00:08:17,410 --> 00:08:18,670 Kjo është zakonisht vetëm një mashtrim bukur. 174 00:08:18,670 --> 00:08:20,430 Dhe ndonjëherë, nëse ju bëhet të vërtetë të kënaqur me të, 175 00:08:20,430 --> 00:08:22,820 ju do të bëni këtë, sepse ajo duket lloj i ftohtë në programet tuaja. 176 00:08:22,820 --> 00:08:25,710 Në përgjithësi unë jam duke e paraqitur atë në ju tani kështu që ju jeni të njohur me të 177 00:08:25,710 --> 00:08:26,990 në qoftë se ju shohin atë. 178 00:08:26,990 --> 00:08:30,080 Por sigurisht e dini që ju nuk keni për të shkruar atë në ndonjë të kodit tuaj. 179 00:08:30,080 --> 00:08:33,246 Por kjo është diçka që të jenë të njohur me, sepse ju patjetër do të hasni 180 00:08:33,246 --> 00:08:36,130 copra të kodit këtu dhe aty ku kjo:? sintaksë, 181 00:08:36,130 --> 00:08:39,120 AKA operatorit tresh, është përdorur. 182 00:08:39,120 --> 00:08:40,960 >> Përmbledhje në mënyrë të shpejtë në çfarë conditionals janë, 183 00:08:40,960 --> 00:08:44,210 dhe çfarë janë mundësitë në dispozicion për ju në C. Ju keni në qoftë se dhe nëse-tjetër, 184 00:08:44,210 --> 00:08:46,860 dhe në qoftë se tjetër në qoftë se, e të tjera. 185 00:08:46,860 --> 00:08:50,880 Ju mund të përdorni shprehje boolean për ata për të marrë vendime. 186 00:08:50,880 --> 00:08:53,720 >> Me deklaratat e kaloni ju përdorni Rastet diskrete për të marrë vendime. 187 00:08:53,720 --> 00:08:57,540 Ju do të thoni në mënyrë specifike, nëse është e një, ose në qoftë se është dy, ose në qoftë se kjo është tre, 188 00:08:57,540 --> 00:09:00,870 Unë do të bëj këtë gjë, ose kjo gjë, apo kjo gjë. 189 00:09:00,870 --> 00:09:04,660 Dhe:? Mund të përdoret për të zëvendësuar Degët shumë të thjeshta nëse-tjetër, 190 00:09:04,660 --> 00:09:08,490 ose në qoftë se-tjetër zinxhirët për të bërë Kodi tuaj duken një dashuroj pak. 191 00:09:08,490 --> 00:09:09,250 >> Unë jam Doug Lloyd. 192 00:09:09,250 --> 00:09:11,410 Dhe kjo është CS50. 193 00:09:11,410 --> 00:09:12,959