1 00:00:00,000 --> 00:00:05,140 2 00:00:05,140 --> 00:00:05,640 Viss kārtībā. 3 00:00:05,640 --> 00:00:08,330 Tāpēc tagad parunāsim par kaut ko patiešām noderīga programming-- 4 00:00:08,330 --> 00:00:09,914 nosacītie apzīmējumi. 5 00:00:09,914 --> 00:00:11,830 Tātad nosacījuma izteiksmes ļauj jūsu programmas 6 00:00:11,830 --> 00:00:14,538 pieņemt lēmumus un uzņemties atšķirīgs dakšas autoceļu, kaut 7 00:00:14,538 --> 00:00:17,670 Man norādīja uz nedaudz agrāk, atkarībā vērtībām mainīgajiem, 8 00:00:17,670 --> 00:00:20,990 vai pamatojoties uz to, ko lietotājs izejvielas programmētājs, pie komandrindas, 9 00:00:20,990 --> 00:00:23,130 vai ja jums ir ātri vai kaut kas tamlīdzīgs. 10 00:00:23,130 --> 00:00:26,690 C ir pāris dažādos veidos, lai izteikt nosacījuma izteiksmes, kas 11 00:00:26,690 --> 00:00:29,911 mēs arī dažreiz zvans nosacījuma filiāle jūsu programmas. 12 00:00:29,911 --> 00:00:32,910 Un daži no tiem dodas meklēt diezgan pazīstams ar jums no nulles, 13 00:00:32,910 --> 00:00:35,190 tāpēc mēs pat vilktu tos up blakus, vienkārši 14 00:00:35,190 --> 00:00:38,170 Jūs varat padarīt šo analoģiju galvu. 15 00:00:38,170 --> 00:00:41,250 >> Tātad, if-- ja ir diezgan vienkāršs nosacīta. 16 00:00:41,250 --> 00:00:43,560 Ja jūs atceraties no scratch par tepat 17 00:00:43,560 --> 00:00:50,000 jūs varētu aizpildīt, kas ir sešstūra ar zilu izteiksmi, ja peli uz leju 18 00:00:50,000 --> 00:00:53,010 vai ja x ir mazāks par 10, vai kaut kas tamlīdzīgs. 19 00:00:53,010 --> 00:00:57,390 Un pēc tam, ja x ir mazāks par 10, vai ja pele bija patiesībā, uz leju, 20 00:00:57,390 --> 00:01:01,140 visi no koda iekšpusē puzzle gabals varētu izpildīt. 21 00:01:01,140 --> 00:01:03,720 Visas lietas, kas der iekšā, ka C formu. 22 00:01:03,720 --> 00:01:07,200 >> Tāpat mums ir ja pa kreisi tur. 23 00:01:07,200 --> 00:01:09,210 Ja Būla izteiksmes, kas es esmu, tikai izmantojot 24 00:01:09,210 --> 00:01:13,010 aizstāt vienu no Būla izteiksmes mēs iepriekš apspriests, 25 00:01:13,010 --> 00:01:15,240 atvērts cirtaini lencēm, tuvu cirtaini lencēm. 26 00:01:15,240 --> 00:01:17,720 Tāpēc domāju, ka atklātā cirtaini lencēm un slēgta cirtaini lencēm 27 00:01:17,720 --> 00:01:22,720 kā sava veida analogs sviestmaizi efekts, ja bloka labajā pusē 28 00:01:22,720 --> 00:01:24,070 no nekā. 29 00:01:24,070 --> 00:01:28,680 >> Ja Būla izteiksme šajā ja paziņojums ir patiess, 30 00:01:28,680 --> 00:01:30,900 tad visi rindas kods starp cirtaini lencēm 31 00:01:30,900 --> 00:01:33,870 veiks, lai no augšas uz leju. 32 00:01:33,870 --> 00:01:35,700 Ja Būla izteiksme ir nepatiesa, mēs 33 00:01:35,700 --> 00:01:38,610 izlaist viss pa vidu cirtaini bikšturi, jo mēs tikai 34 00:01:38,610 --> 00:01:44,570 gribu iet uz leju, ka dakša uz ceļa ja Būla izteiksme ir patiesa. 35 00:01:44,570 --> 00:01:48,540 >> Mēs varam izmantot šo vienu soli tālāk ar ja cits. 36 00:01:48,540 --> 00:01:50,820 Tātad šis Scratch bloks ir diezgan līdzīga tai, 37 00:01:50,820 --> 00:01:55,884 mēs redzējām tikai otrs atpakaļ, izņemot tas aizņem divus dažādus ceļus, kuru pamatā 38 00:01:55,884 --> 00:01:56,550 par to, kas notiek. 39 00:01:56,550 --> 00:02:00,420 Tātad, ja pele ir uz leju, vai tad, kad X ir mazāks par 10, 40 00:02:00,420 --> 00:02:04,780 mēs darīsim visu, kas ir pa vidu ka pirmais dakša, ka pirmais C., 41 00:02:04,780 --> 00:02:08,430 >> Pretējā gadījumā, ja pele ir uz augšu, vai x ir ne mazāks par 10, 42 00:02:08,430 --> 00:02:10,460 mēs darīsim visu, kas ir otrā. 43 00:02:10,460 --> 00:02:15,010 Un tas ir analogs tam, ko redzat šeit C. Ja Būla izteiksmes, 44 00:02:15,010 --> 00:02:17,910 darīt stuff starp Pirmais komplekts cirtaini lencēm. 45 00:02:17,910 --> 00:02:20,550 Else, do stuff starp Otrā cirtaini lencēm. 46 00:02:20,550 --> 00:02:22,080 Tātad, ja Bula izteiksme ir taisnība, mēs 47 00:02:22,080 --> 00:02:23,580 darīt visu ir starp pirmo komplektu. 48 00:02:23,580 --> 00:02:27,480 Ja Būla izteiksme ir nepatiesa, ka varētu būt saistīts ar citu, 49 00:02:27,480 --> 00:02:30,100 un mēs varētu darīt jebko, kas otrais kopums cirtaini lencēm. 50 00:02:30,100 --> 00:02:34,190 Atkal, augšas uz leju, visi līnijas starp lencēm. 51 00:02:34,190 --> 00:02:38,130 >> In C, tas ir iespējams, lai radītu IF-cits, ja-cits ķēde. 52 00:02:38,130 --> 00:02:42,000 Patiesībā jūs varat būt, ja-cits, ja-cits ja-cits, ja, un tā tālāk, un tā tālāk, un tā 53 00:02:42,000 --> 00:02:42,720 on. 54 00:02:42,720 --> 00:02:44,660 In nulles, tas prasīja ligzdo blokus. 55 00:02:44,660 --> 00:02:48,280 Pievienojot ja-cits, un jums bija nodot vēl vienu iekšpusē cits, 56 00:02:48,280 --> 00:02:51,110 un tā tālāk, un tā ieguva veida ligzdotu un sarežģīta. 57 00:02:51,110 --> 00:02:52,450 Bet C, mums nav to darīt. 58 00:02:52,450 --> 00:02:55,300 Mēs tiešām varam vienkārši ir tā ir ķēde, kā šis. 59 00:02:55,300 --> 00:02:58,350 Atkal, kā jūs varētu gaidīt, visi šīm filiālēm ir savstarpēji izslēdzoši. 60 00:02:58,350 --> 00:03:00,750 Jūs varat tikai kādreiz aiziet uz leju vienu filiāli. 61 00:03:00,750 --> 00:03:02,270 Ja tā ir taisnība. 62 00:03:02,270 --> 00:03:03,930 Pretējā gadījumā, ja tā ir taisnība. 63 00:03:03,930 --> 00:03:05,700 Pretējā gadījumā, ja tā ir taisnība. 64 00:03:05,700 --> 00:03:07,120 Pretējā gadījumā to izdarītu. 65 00:03:07,120 --> 00:03:11,010 Tātad visi četri filiālēm šajā piemērs ir savstarpēji izslēdzoši. 66 00:03:11,010 --> 00:03:14,900 Tas ir, ja-cits, ja-cits ķēde. 67 00:03:14,900 --> 00:03:17,580 >> Tas ir iespējams, lai gan, un dažreiz ļoti noderīgi, 68 00:03:17,580 --> 00:03:20,950 lai izveidotu ķēdi nav savstarpēji izslēdzošas filiāles. 69 00:03:20,950 --> 00:03:24,600 Šajā piemērā, tikai trešais un ceturtā filiāles ir savstarpēji izslēdzoši. 70 00:03:24,600 --> 00:03:27,450 Tā varētu būt, ka jūs varētu apmierināt pirmo nosacījumu, 71 00:03:27,450 --> 00:03:29,396 un jūs varētu apmierināt Otrais nosacījums, 72 00:03:29,396 --> 00:03:31,770 un jūs varētu apmierināt trešais condition-- tādā gadījumā 73 00:03:31,770 --> 00:03:35,270 jūs varētu iet uz leju, pirmo filiāli, tad jums iet uz leju otru filiāli, 74 00:03:35,270 --> 00:03:37,000 tad jūs varētu iet uz leju trešo filiāli. 75 00:03:37,000 --> 00:03:40,450 Vai varbūt jūs apmierina pirmais stāvoklis, un otrais stāvoklis, 76 00:03:40,450 --> 00:03:42,770 bet jūs neapmierina trešais nosacījums. 77 00:03:42,770 --> 00:03:46,230 Tādā gadījumā jūs iet uz leju pirmais filiāle un otrā daļa, 78 00:03:46,230 --> 00:03:48,040 un tad ceturtā daļa, 79 00:03:48,040 --> 00:03:51,392 >> Iemesls tam ir tas, ka cits būs tikai saistīties ar ja tuvāko. 80 00:03:51,392 --> 00:03:53,100 Tātad, pat ja tur ir cits šeit, ka 81 00:03:53,100 --> 00:03:56,490 ne vienmēr izveidot savstarpēji ekskluzīva ķēde viss. 82 00:03:56,490 --> 00:04:00,890 Tas ir tikai izteiciens tur ar Būla 83 00:04:00,890 --> 00:04:05,040 izteiksme 3-- tas ir savstarpēji izslēdzošas ar citu. 84 00:04:05,040 --> 00:04:07,580 Tāpēc tas ir iespējams, un dažreiz diezgan noderīgs, 85 00:04:07,580 --> 00:04:11,772 kā jau teicu, lai izveidotu ķēdi nav savstarpēji izslēdzošas filiāles. 86 00:04:11,772 --> 00:04:14,230 Pieņemsim to apskatīt atšķirīgs veida nosacījumu, kas 87 00:04:14,230 --> 00:04:17,392 neesat redzējis nulles. 88 00:04:17,392 --> 00:04:19,369 Tur ir kaut kas ko sauc slēdzis paziņojums. 89 00:04:19,369 --> 00:04:21,410 Slēdzis paziņojums ir veida veikls, jo tas ir 90 00:04:21,410 --> 00:04:25,930 nosacīts aprēķins, kas ļauj Jums, lai precizētu atsevišķus gadījumus, 91 00:04:25,930 --> 00:04:28,926 nevis paļaujoties uz Būla izteicienus, lai pieņemtu lēmumus par jums. 92 00:04:28,926 --> 00:04:31,050 Tā, piemēram, teiksim ka man ir šī programma, 93 00:04:31,050 --> 00:04:34,110 un es esmu jautā lietotājam lai sniegtu ieguldījumu man. 94 00:04:34,110 --> 00:04:37,170 Tāpēc es saku, int x = Saņemt Int (), un, ja jūs neesat pazīstams vēl, 95 00:04:37,170 --> 00:04:40,190 saņemt int ir funkcija, kas ir iekļauti arī CS50 bibliotēkā, 96 00:04:40,190 --> 00:04:44,610 Tātad, ja jūs # Ietvert CS50.H jums ir piekļuve Get INT () un visas tās 97 00:04:44,610 --> 00:04:46,840 cousins-- GetFloat, GetString, un tā tālāk. 98 00:04:46,840 --> 00:04:52,590 Būtībā viens Get funkciju par katru datu tips, ka mēs esam jau apspriests. 99 00:04:52,590 --> 00:04:53,970 >> Tātad Int x vienāds GetInt. 100 00:04:53,970 --> 00:04:56,390 Būtībā, kas notiek ir tā, es esmu pie termināla. 101 00:04:56,390 --> 00:04:58,790 Es esmu jautā lietotājam ierakstiet numuru. 102 00:04:58,790 --> 00:05:02,300 >> Un šeit es esmu pāriet ko es daru, atkarībā 103 00:05:02,300 --> 00:05:05,060 par to, ko lietotājs drukāti pie uzvednē. 104 00:05:05,060 --> 00:05:09,147 Tātad, ja tie drukāti vienu, es izdrukāt vienu. 105 00:05:09,147 --> 00:05:09,855 Un tad es pārtraukums. 106 00:05:09,855 --> 00:05:12,590 107 00:05:12,590 --> 00:05:15,510 Ja viņi tipa divas, es izdrukāt divi. 108 00:05:15,510 --> 00:05:16,690 Un tad es pārtraukums. 109 00:05:16,690 --> 00:05:19,060 Tas ir svarīgi, lai pauze starp katrā gadījumā 110 00:05:19,060 --> 00:05:20,890 jo pretējā gadījumā jums būs izkrist pa. 111 00:05:20,890 --> 00:05:23,380 Tātad, ja man nav neviena pārtraukumiem tur, un lietotājs 112 00:05:23,380 --> 00:05:31,380 drukāti viens, kas notiktu, tas ir varētu drukāt viens, divi, trīs, sorry. 113 00:05:31,380 --> 00:05:33,099 Tas ir sava veida dīvaina uzvedība, vai ne? 114 00:05:33,099 --> 00:05:33,890 Jūs varētu domāt tā. 115 00:05:33,890 --> 00:05:36,480 Bet ir faktiski daži gadījumi, kad tas varētu būt diezgan noderīga lieta. 116 00:05:36,480 --> 00:05:39,730 Tātad, šeit ir vēl viens piemērs, slēdzi paziņojums, kurā es nenorādu pārtraukumiem. 117 00:05:39,730 --> 00:05:42,030 Bet es to darīt uz mērķi. 118 00:05:42,030 --> 00:05:43,030 >> Tātad, kas notiek šeit? 119 00:05:43,030 --> 00:05:43,821 Padomā par sekundi. 120 00:05:43,821 --> 00:05:45,960 Jūs pat varētu vēlēties, lai apturētu video. 121 00:05:45,960 --> 00:05:48,230 >> Kas notiek, ja šeit lietotājs veidi četri? 122 00:05:48,230 --> 00:05:51,190 123 00:05:51,190 --> 00:05:53,860 Tāpēc es esmu lūdza lietotājam ievadi. 124 00:05:53,860 --> 00:05:56,560 Un tie sniedz vērtību 4. 125 00:05:56,560 --> 00:05:59,545 Kas izpaužas izdrukāt, ja man darīt? 126 00:05:59,545 --> 00:06:02,170 Uz iepriekšējo slaidu, tur bija pārtraukumi starp visiem gadījumiem. 127 00:06:02,170 --> 00:06:04,750 Un tā tas vienkārši izdrukāt četri un tad apstāties. 128 00:06:04,750 --> 00:06:06,610 Bet šajā gadījumā tā nav. 129 00:06:06,610 --> 00:06:10,700 Kas notiks, ir jums kritīs cauri katrā konkrētajā gadījumā. 130 00:06:10,700 --> 00:06:14,890 >> Tātad šajā gadījumā es esmu organizēts manas lietas tādā veidā, ka tad, ja lietotājs veidiem 4, 131 00:06:14,890 --> 00:06:20,070 Es drukāt četri, trīs, divi, viens, domnas off. 132 00:06:20,070 --> 00:06:22,780 Un, ja tie drukāti 5, es gribētu sākt pie pieciem un darīt to pašu. 133 00:06:22,780 --> 00:06:26,410 Ja tie drukāti 1, es būtu tikai darīt vienu, sprādzienu off. 134 00:06:26,410 --> 00:06:28,715 >> Tātad šajā gadījumā, es esmu, izmantojot slēdzis veida gudri tik 135 00:06:28,715 --> 00:06:30,804 ka es plānoju krist cauri visiem gadījumiem. 136 00:06:30,804 --> 00:06:33,720 Bet parasti jūs, iespējams gonna vēlaties, lai izjauktu starp viņiem visiem, 137 00:06:33,720 --> 00:06:36,090 ja vien jums ir situācija piemēram, šo vienu, kur tu esi 138 00:06:36,090 --> 00:06:40,081 veida piesaistot to, ka jūs izkrist pa gadījumos bez pārtraukuma. 139 00:06:40,081 --> 00:06:42,830 Tātad tas ir otrais lielākais veidi nosacītās pārskatu. 140 00:06:42,830 --> 00:06:47,139 Pēdējais no kuriem ir:? Tāpēc es ir divas fragmentus C kodu šeit. 141 00:06:47,139 --> 00:06:48,680 Viens pa kreisi un viens pa labi. 142 00:06:48,680 --> 00:06:52,330 Viens no kreisās būtu iespējams, būs diezgan pazīstams ar jums. 143 00:06:52,330 --> 00:06:55,110 >> Man ir int x. 144 00:06:55,110 --> 00:06:57,167 Un es droši vien būtu ir lūguši lietotājam 145 00:06:57,167 --> 00:07:00,250 for-- tas būtu iespējams, Int x vienāds GetInt, vai kaut kas tamlīdzīgs. 146 00:07:00,250 --> 00:07:03,030 147 00:07:03,030 --> 00:07:05,240 Un tad es esmu padarot lēmumu. 148 00:07:05,240 --> 00:07:11,700 Ja dažas Būla izteiksme ir taisnība, piešķirt x vērtību 5. 149 00:07:11,700 --> 00:07:13,590 Pretējā gadījumā, piešķirt x vērtību 6. 150 00:07:13,590 --> 00:07:16,548 >> Tas pa kreisi būtu iespējams, diezgan pazīstams no mūsu diskusijas 151 00:07:16,548 --> 00:07:18,160 If Else tikai pirms brīža. 152 00:07:18,160 --> 00:07:20,535 Vai Jūs būtu pārsteigti uzzināt ka līnijas labajā pusē 153 00:07:20,535 --> 00:07:22,310 nav tieši tas pats? 154 00:07:22,310 --> 00:07:26,140 >> Tā to sauc: vai dažreiz sauc trīskāršo operators. 155 00:07:26,140 --> 00:07:27,450 Un tas ir diezgan vēss. 156 00:07:27,450 --> 00:07:29,110 Tas parasti izmanto kā gudrs triks. 157 00:07:29,110 --> 00:07:35,777 >> Bet ko tas ļauj jums jādara, ir simulēt IF Else ar patiešām maza, 158 00:07:35,777 --> 00:07:37,610 tiešām trivially īss nosacītie filiāles. 159 00:07:37,610 --> 00:07:41,470 Tu vispār nevarētu izmantot: ja jums bija seši koda rindiņas starp katru komplektu 160 00:07:41,470 --> 00:07:42,569 no cirtaini lencēm. 161 00:07:42,569 --> 00:07:44,360 Bet, ja tu esi tikai padarot ātri pieņemt lēmumu, 162 00:07:44,360 --> 00:07:47,520 ja jūs gatavojas darīt vienu lietu vai otru, un tas ir ļoti vienkārši, 163 00:07:47,520 --> 00:07:52,240 tas varētu būt piemērs, kā to darīt to ar:? trīskāršo operators. 164 00:07:52,240 --> 00:07:56,940 Tātad Int x vienāds izteiksme? 165 00:07:56,940 --> 00:07:59,470 Lieta pēc jautājuma zīme ir tas x ir vērtība 166 00:07:59,470 --> 00:08:02,690 būs, ja izteiksme ir patiesa. 167 00:08:02,690 --> 00:08:05,330 >> Lieta pēc Kols ir Kas ir X vērtību 168 00:08:05,330 --> 00:08:07,990 būtu, ja izteiksme ir nepatiesa. 169 00:08:07,990 --> 00:08:11,510 Tāpēc es esmu jautā sev, ir izteiksme taisnība? 170 00:08:11,510 --> 00:08:13,870 Ja tā ir, piešķirt x vērtību 5. 171 00:08:13,870 --> 00:08:16,619 Ja tā nav, piešķirt x vērtību 6. 172 00:08:16,619 --> 00:08:17,410 Atkal, tāpat kā es teicu. 173 00:08:17,410 --> 00:08:18,670 Tas parasti ir tikai gudrs triks. 174 00:08:18,670 --> 00:08:20,430 Un dažreiz, ja jūs kļūstat tiešām apmierināti ar to, 175 00:08:20,430 --> 00:08:22,820 jūs darīt, jo tas izskatās veida atdzist jūsu programmas. 176 00:08:22,820 --> 00:08:25,710 Vispār es esmu to iepazīstināt Jūs tagad tik jūs esat pazīstams ar to 177 00:08:25,710 --> 00:08:26,990 ja jūs to redzat. 178 00:08:26,990 --> 00:08:30,080 Bet, protams, zinu, jums nav rakstīt to jebkurā no jūsu kodu. 179 00:08:30,080 --> 00:08:33,246 Bet tas ir kaut kas, ka zina, jo jūs noteikti sastapsies 180 00:08:33,246 --> 00:08:36,130 fragmentus kodu šeit un tur kur šis:? sintakse, 181 00:08:36,130 --> 00:08:39,120 AKA trīskāršo operators, tiek izmantots. 182 00:08:39,120 --> 00:08:40,960 >> Tik ātri kopsavilkums par kādi conditionals ir, 183 00:08:40,960 --> 00:08:44,210 un kādas iespējas ir pieejamas jums C. Jūs būtu, ja un ja-cits, 184 00:08:44,210 --> 00:08:46,860 un ja cits, ja, un tā tālāk. 185 00:08:46,860 --> 00:08:50,880 Jūs varat izmantot Būla izteiksmes tiem pieņemt lēmumus. 186 00:08:50,880 --> 00:08:53,720 >> Ar slēdzi paziņojumus jūs izmantojat diskrēta gadījumos pieņemt lēmumus. 187 00:08:53,720 --> 00:08:57,540 Jūs konkrēti pateikt, ja tas ir viens, vai arī, ja tas ir divas, vai arī, ja tas ir trīs, 188 00:08:57,540 --> 00:09:00,870 Es darīšu šo lietu, vai šī lieta, vai šī lieta. 189 00:09:00,870 --> 00:09:04,660 Un:?, Var izmantot, lai aizvietotu Ļoti vienkārši, ja-cits filiāles, 190 00:09:04,660 --> 00:09:08,490 vai ja-cits ķēdes, lai padarītu Jūsu kods izskatās mazliet iedomātā. 191 00:09:08,490 --> 00:09:09,250 >> Es esmu Doug Lloyd. 192 00:09:09,250 --> 00:09:11,410 Un tas ir CS50. 193 00:09:11,410 --> 00:09:12,959