1 00:00:00,000 --> 00:00:05,140 2 00:00:05,140 --> 00:00:05,640 Minden rendben. 3 00:00:05,640 --> 00:00:08,330 Tehát most beszéljünk valami Nagyon hasznos programming-- 4 00:00:08,330 --> 00:00:09,914 A feltételes utasításokat. 5 00:00:09,914 --> 00:00:11,830 Tehát feltételes kifejezések lehetővé teszi a programok 6 00:00:11,830 --> 00:00:14,538 döntéseket hozni, és hogy a különböző villa az úton, valami 7 00:00:14,538 --> 00:00:17,670 Utaltam kicsit korábban, attól függően, hogy a változók értékeit, 8 00:00:17,670 --> 00:00:20,990 vagy annak alapján, amit a felhasználó alapanyagot a programozó, a parancssorban, 9 00:00:20,990 --> 00:00:23,130 vagy ha van egy gyors vagy valami ilyesmi. 10 00:00:23,130 --> 00:00:26,690 C egy pár különböző módon kifejezni feltételes kifejezések, amelyek 11 00:00:26,690 --> 00:00:29,911 mi is néha meg fogja hívni a Feltételes elágazások a programokban. 12 00:00:29,911 --> 00:00:32,910 És ezek némelyike ​​fog kinézni elég ismerős neked a semmiből, 13 00:00:32,910 --> 00:00:35,190 így fogunk is húzza őket akár egymás mellett, csak 14 00:00:35,190 --> 00:00:38,170 tudod, hogy az analógia a fejedben. 15 00:00:38,170 --> 00:00:41,250 >> Szóval, if-- ha egy szép egyszerű feltételes. 16 00:00:41,250 --> 00:00:43,560 Ha visszahívja a semmiből a jobb oldalon van 17 00:00:43,560 --> 00:00:50,000 akkor töltse ki, hogy a hatszög A kék kifejezése, ha az egeret le 18 00:00:50,000 --> 00:00:53,010 vagy, ha x kisebb, mint 10, vagy valami ilyesmi. 19 00:00:53,010 --> 00:00:57,390 És aztán, ha x kevesebb volt, mint 10, vagy ha az egér volt sőt, le, 20 00:00:57,390 --> 00:01:01,140 az összes kódot belsejét puzzle-darab hajthat végre. 21 00:01:01,140 --> 00:01:03,720 Minden dolog, hogy illeszkedjen belül, hogy a C alakú. 22 00:01:03,720 --> 00:01:07,200 >> Hasonlóképpen kell nekünk ha a bal oldalon van. 23 00:01:07,200 --> 00:01:09,210 Ha logikai kifejezés, ami én vagyok csak használ 24 00:01:09,210 --> 00:01:13,010 mint helyettesíti az egyik Boole kifejezések azt korábban már említettük, 25 00:01:13,010 --> 00:01:15,240 nyitott zárójel, kapcsos zárójel bezár. 26 00:01:15,240 --> 00:01:17,720 Szóval szerintem a nyílt göndör melles és zárt kapcsos zárójel 27 00:01:17,720 --> 00:01:22,720 mint egyfajta analóg a szendvics hatása, ha blokk a jobb oldalon 28 00:01:22,720 --> 00:01:24,070 a semmiből. 29 00:01:24,070 --> 00:01:28,680 >> Ha a logikai kifejezés az if igaz, 30 00:01:28,680 --> 00:01:30,900 akkor az egész sornyi kódot kapcsos zárójelek közötti rész 31 00:01:30,900 --> 00:01:33,870 végrehajtja annak érdekében, fentről lefelé. 32 00:01:33,870 --> 00:01:35,700 Ha a logikai kifejezés hamis, akkor 33 00:01:35,700 --> 00:01:38,610 átugorják mindent között A kapcsos zárójelek, mert csak 34 00:01:38,610 --> 00:01:44,570 akar lemenni, hogy útelágazáshoz ha a logikai kifejezés igaz. 35 00:01:44,570 --> 00:01:48,540 >> Mi lehet még egy lépéssel tovább, ha mást. 36 00:01:48,540 --> 00:01:50,820 Tehát ez a Scratch blokk elég hasonló a 37 00:01:50,820 --> 00:01:55,884 láttunk egy pillanat ezelőtt, kivéve úgy két különböző utakat alapján 38 00:01:55,884 --> 00:01:56,550 mi történik. 39 00:01:56,550 --> 00:02:00,420 Tehát, ha az egeret lent volt, vagy ha x kevesebb volt, mint 10, 40 00:02:00,420 --> 00:02:04,780 mindent megteszünk, ami a kettő között hogy az első villát, hogy az első C, 41 00:02:04,780 --> 00:02:08,430 >> Ellenkező esetben, ha az egér fel, vagy x nem kevesebb, mint 10, 42 00:02:08,430 --> 00:02:10,460 mi mindent megteszünk a második szettben. 43 00:02:10,460 --> 00:02:15,010 És ez analóg azzal, amit látsz ide C. Ha logikai kifejezés, 44 00:02:15,010 --> 00:02:17,910 ezt a cuccot között első szettet kapcsoszárójele. 45 00:02:17,910 --> 00:02:20,550 Mást, nem a cucc között második szettet kapcsoszárójele. 46 00:02:20,550 --> 00:02:22,080 Tehát, ha a logikai kifejezés igaz, akkor 47 00:02:22,080 --> 00:02:23,580 csinálsz, amit között van az első szettet. 48 00:02:23,580 --> 00:02:27,480 Ha a kifejezés nem hamis, ami kiváltja a más, 49 00:02:27,480 --> 00:02:30,100 és mi tenne bármi van A második kapcsoszárójele. 50 00:02:30,100 --> 00:02:34,190 Ismét, felülről lefelé, minden vonalak zárójelek között. 51 00:02:34,190 --> 00:02:38,130 >> A C-ben, lehetséges, hogy hozzon létre if-else if-else lánc. 52 00:02:38,130 --> 00:02:42,000 Valójában akkor már if-else if-else ha-mást, ha, és így tovább, és így tovább, és így 53 00:02:42,000 --> 00:02:42,720 tovább. 54 00:02:42,720 --> 00:02:44,660 Ebben semmiből, ez szükséges fészkel a blokkokat. 55 00:02:44,660 --> 00:02:48,280 Hozzáad egy if-else, és ha kellett tedd egy másik belsejében a mást, 56 00:02:48,280 --> 00:02:51,110 és így tovább, és ez van a fajta A beágyazott és bonyolult. 57 00:02:51,110 --> 00:02:52,450 De C, akkor nem kell csinálni. 58 00:02:52,450 --> 00:02:55,300 Mi is valójában csak meg ez egy lánc, mint ez. 59 00:02:55,300 --> 00:02:58,350 Itt is, mint az várható, az összes Ezek az ágazatok kölcsönösen kizárják egymást. 60 00:02:58,350 --> 00:03:00,750 Csak akkor már megy le az egyik ága. 61 00:03:00,750 --> 00:03:02,270 Ha ez igaz. 62 00:03:02,270 --> 00:03:03,930 Ellenkező esetben, ha ez igaz. 63 00:03:03,930 --> 00:03:05,700 Ellenkező esetben, ha ez igaz. 64 00:03:05,700 --> 00:03:07,120 Egyébként ezt. 65 00:03:07,120 --> 00:03:11,010 Tehát mind a négy ága ezen Például kölcsönösen kizárják egymást. 66 00:03:11,010 --> 00:03:14,900 Ez egy if-else if-else lánc. 67 00:03:14,900 --> 00:03:17,580 >> Lehetőség van azonban, és néha nagyon hasznos, 68 00:03:17,580 --> 00:03:20,950 hogy hozzon létre egy lánc nem kölcsönösen kizáró ágak. 69 00:03:20,950 --> 00:03:24,600 Ebben a példában csak a harmadik és a negyedik ágak kölcsönösen kizárják egymást. 70 00:03:24,600 --> 00:03:27,450 Lehet, hogy meg kielégíti az első feltételt, 71 00:03:27,450 --> 00:03:29,396 és meg tudná kielégíteni A második feltétel, 72 00:03:29,396 --> 00:03:31,770 és hogy eleget tegyen a harmadik condition-- amely esetben 73 00:03:31,770 --> 00:03:35,270 akkor megy le az első ág, akkor menj le egy másik ága, 74 00:03:35,270 --> 00:03:37,000 akkor megy le a harmadik ágat. 75 00:03:37,000 --> 00:03:40,450 Vagy talán eleget az állapotban, és a második feltétel, 76 00:03:40,450 --> 00:03:42,770 de nem eleget A harmadik feltétel. 77 00:03:42,770 --> 00:03:46,230 Ebben az esetben megy le az első ág és a második ág, 78 00:03:46,230 --> 00:03:48,040 majd a negyedik ága, 79 00:03:48,040 --> 00:03:51,392 >> Ennek az az oka az, hogy a más csak kötődnek a legközelebbi ha. 80 00:03:51,392 --> 00:03:53,100 Így, bár van Egy más is, hogy 81 00:03:53,100 --> 00:03:56,490 nem jelent szükségszerűen kölcsönösen exkluzív lánc mindent. 82 00:03:56,490 --> 00:04:00,890 Ez csak a kifejezés Ott logikai 83 00:04:00,890 --> 00:04:05,040 véleménynyilvánítás 3-- ez a kölcsönösen kizárja egymást a más. 84 00:04:05,040 --> 00:04:07,580 Így lehetséges, és Néha nagyon hasznos, 85 00:04:07,580 --> 00:04:11,772 mint mondtam, hogy hozzon létre egy lánc nem zárja ki egymást ágak. 86 00:04:11,772 --> 00:04:14,230 Vessünk egy pillantást egy másik fajta feltételes, amely 87 00:04:14,230 --> 00:04:17,392 Ön még nem látott a Scratch. 88 00:04:17,392 --> 00:04:19,369 Van egy úgynevezett a switch. 89 00:04:19,369 --> 00:04:21,410 A switch ilyen ügyes, mert 90 00:04:21,410 --> 00:04:25,930 feltételes utasítást, amely lehetővé teszi megadhatja, hogy különböző esetekben, 91 00:04:25,930 --> 00:04:28,926 ahelyett, hogy logikai kifejezést, hogy a döntéseket az Ön számára. 92 00:04:28,926 --> 00:04:31,050 Így például, mondjuk hogy van ez a program, 93 00:04:31,050 --> 00:04:34,110 és azt kérem a felhasználó hogy járuljon nekem. 94 00:04:34,110 --> 00:04:37,170 Szóval azt mondom, int x = Get Int (), és ha nem ismerik még, 95 00:04:37,170 --> 00:04:40,190 kap int egy olyan funkció, amely is szerepel a CS50 Library, 96 00:04:40,190 --> 00:04:44,610 így ha #include CS50.H akkor meg hozzáférést Get Int (), és annak minden 97 00:04:44,610 --> 00:04:46,840 cousins-- GetFloat, GetString, és így tovább. 98 00:04:46,840 --> 00:04:52,590 Alapvetően egy kap funkciót minden egyes adattípus, hogy mi már megbeszéltük. 99 00:04:52,590 --> 00:04:53,970 >> Tehát Int x = GetInt. 100 00:04:53,970 --> 00:04:56,390 Alapvetően mi történik hogy én vagyok a terminálon. 101 00:04:56,390 --> 00:04:58,790 Arra kérem a felhasználót, hogy írja be a számot. 102 00:04:58,790 --> 00:05:02,300 >> És itt vagyok váltás mit csinálok, attól függően, 103 00:05:02,300 --> 00:05:05,060 amit a felhasználó beírt a billentyűket. 104 00:05:05,060 --> 00:05:09,147 Tehát ha gépelt egyet, azt ki kell nyomtatni egy. 105 00:05:09,147 --> 00:05:09,855 És aztán szünet. 106 00:05:09,855 --> 00:05:12,590 107 00:05:12,590 --> 00:05:15,510 Ha nem írják be két, azt ki kell nyomtatni kettő. 108 00:05:15,510 --> 00:05:16,690 És aztán szünet. 109 00:05:16,690 --> 00:05:19,060 Fontos, hogy megtörni között minden esetben 110 00:05:19,060 --> 00:05:20,890 mert különben akkor esik át. 111 00:05:20,890 --> 00:05:23,380 Tehát, ha nem volt semmilyen szünetek vannak, és a felhasználó 112 00:05:23,380 --> 00:05:31,380 gépelt egyik, hogy mi fog történni az, kiírja egy, kettő, három, sajnálom. 113 00:05:31,380 --> 00:05:33,099 Ez a fajta furcsa viselkedését, ugye? 114 00:05:33,099 --> 00:05:33,890 Lehet, hogy így gondolja. 115 00:05:33,890 --> 00:05:36,480 De vannak olyan esetek, ahol ténylegesen ez lehet egy nagyon hasznos dolog. 116 00:05:36,480 --> 00:05:39,730 Tehát itt egy másik példa egy kapcsoló nyilatkozatot, ahol kihagyja a szünetekben. 117 00:05:39,730 --> 00:05:42,030 De én szándékosan csináltam. 118 00:05:42,030 --> 00:05:43,030 >> Tehát mi történik itt? 119 00:05:43,030 --> 00:05:43,821 Gondolj csak egy pillanatra. 120 00:05:43,821 --> 00:05:45,960 Lehet, hogy szeretné, hogy szünetelteti a videót. 121 00:05:45,960 --> 00:05:48,230 >> Mi történik itt, ha A felhasználó beír négy? 122 00:05:48,230 --> 00:05:51,190 123 00:05:51,190 --> 00:05:53,860 Szóval kértem a felhasználó számára bemenet. 124 00:05:53,860 --> 00:05:56,560 És ezek biztosítják az érték 4. 125 00:05:56,560 --> 00:05:59,545 Mi lett nyomtatva, amikor tehetem ezt meg? 126 00:05:59,545 --> 00:06:02,170 Az előző dia, voltak közötti szünetekben minden esetben. 127 00:06:02,170 --> 00:06:04,750 És ez így is csak print négy, majd megáll. 128 00:06:04,750 --> 00:06:06,610 De ebben az esetben, nem fog. 129 00:06:06,610 --> 00:06:10,700 Mi lesz az Ön csökkenni fog át minden esetben. 130 00:06:10,700 --> 00:06:14,890 >> Tehát ebben az esetben én szerveztem esetek oly módon, hogy ha a felhasználó típusok 4, 131 00:06:14,890 --> 00:06:20,070 Én kiírja négy, három, kettő, egy, kilövésre. 132 00:06:20,070 --> 00:06:22,780 És ha gépelt 5, kezdeném öt és ugyanezt csinálja. 133 00:06:22,780 --> 00:06:26,410 Ha ők gépelt 1, megtenném Csak tegye, kilövésre. 134 00:06:26,410 --> 00:06:28,715 >> Tehát ebben az esetben, én vagyok a egy kapcsoló fajta ügyesen úgy 135 00:06:28,715 --> 00:06:30,804 hogy nem kíván esni révén az összes esetet. 136 00:06:30,804 --> 00:06:33,720 De általában akkor valószínűleg lesz szeretnénk megtörni ezek között, 137 00:06:33,720 --> 00:06:36,090 ha van egy helyzet mint ez, ahol te 138 00:06:36,090 --> 00:06:40,081 fajta kihasználva azt a tényt, hogy akkor esik át az esetben, szünet nélkül. 139 00:06:40,081 --> 00:06:42,830 Szóval ez a második legjelentősebb típusú feltételes utasítások. 140 00:06:42,830 --> 00:06:47,139 Amelyek közül az utolsó is?: Szóval Két töredék a C kódot itt. 141 00:06:47,139 --> 00:06:48,680 Az egyik a bal, egy a jobb oldalon. 142 00:06:48,680 --> 00:06:52,330 Az egyik a bal oldalon kell Valószínűleg elég ismerős. 143 00:06:52,330 --> 00:06:55,110 >> Van int x. 144 00:06:55,110 --> 00:06:57,167 És én valószínűleg meg Megkértük a felhasználó 145 00:06:57,167 --> 00:07:00,250 for-- ez valószínűleg Int x egyenlő GetInt, vagy valami ilyesmi. 146 00:07:00,250 --> 00:07:03,030 147 00:07:03,030 --> 00:07:05,240 És akkor én döntést. 148 00:07:05,240 --> 00:07:11,700 Ha néhány logikai kifejezés Igaz, rendeljen x értéke 5. 149 00:07:11,700 --> 00:07:13,590 Ellenkező esetben rendelheti x értéke 6. 150 00:07:13,590 --> 00:07:16,548 >> Hogy a bal oldalon kell valószínűleg elég ismerős vitánk 151 00:07:16,548 --> 00:07:18,160 A Ha semmi más, csak egy pillanattal ezelőtt. 152 00:07:18,160 --> 00:07:20,535 Lennél lepve, hogy tudja hogy a vonal a jobb 153 00:07:20,535 --> 00:07:22,310 nem pontosan ugyanaz a dolog? 154 00:07:22,310 --> 00:07:26,140 >> Ezért hívják?: Vagy néha az úgynevezett háromkomponensű üzemeltető. 155 00:07:26,140 --> 00:07:27,450 És ez elég jó. 156 00:07:27,450 --> 00:07:29,110 Ez általában használt mint egy aranyos trükk. 157 00:07:29,110 --> 00:07:35,777 >> De mi ez lehetővé teszi, hogy tennie, hogy szimulálnak Ha mást tényleg kicsi, 158 00:07:35,777 --> 00:07:37,610 Tényleg triviálisan rövid feltételes elágazások. 159 00:07:37,610 --> 00:07:41,470 Ön általában nem használnám?: Ha volt hat sornyi kódot között mindegyik 160 00:07:41,470 --> 00:07:42,569 kapcsoszárójele. 161 00:07:42,569 --> 00:07:44,360 De ha csak hogy egy gyors döntést, 162 00:07:44,360 --> 00:07:47,520 ha meg akarsz csinálni egy dolog vagy a másik, és ez nagyon egyszerű, 163 00:07:47,520 --> 00:07:52,240 ez lehet egy példa arra, hogyan csináld?: a háromkomponensű üzemeltetője. 164 00:07:52,240 --> 00:07:56,940 Tehát Int x = kifejezés? 165 00:07:56,940 --> 00:07:59,470 A dolog után a kérdés jelet, amit x értéke 166 00:07:59,470 --> 00:08:02,690 lesz, ha a kifejezés igaz. 167 00:08:02,690 --> 00:08:05,330 >> A dolog után vastagbél, amit x értéke 168 00:08:05,330 --> 00:08:07,990 lenne, ha a kifejezés hamis volt. 169 00:08:07,990 --> 00:08:11,510 Úgyhogy megkérdeztem magamtól, ez a kifejezés igaz? 170 00:08:11,510 --> 00:08:13,870 Ha igen, akkor rendelheti x értéke 5. 171 00:08:13,870 --> 00:08:16,619 Ha nem, rendeljen x értéke 6. 172 00:08:16,619 --> 00:08:17,410 Ismét, mint mondtam. 173 00:08:17,410 --> 00:08:18,670 Ez általában csak egy aranyos trükk. 174 00:08:18,670 --> 00:08:20,430 És néha, ha lesz Nagyon kényelmes vele, 175 00:08:20,430 --> 00:08:22,820 akkor ezt azért, mert úgy néz ki, klassz a programokban. 176 00:08:22,820 --> 00:08:25,710 Általában én bemutatja, hogy Ön most így Ön ismeri meg 177 00:08:25,710 --> 00:08:26,990 ha látom. 178 00:08:26,990 --> 00:08:30,080 De biztosan tudjuk, akkor nem kell kell írni, hogy minden a kódot. 179 00:08:30,080 --> 00:08:33,246 De ez egy olyan dolog, hogy tisztában legyünk, mert akkor biztosan találkozik 180 00:08:33,246 --> 00:08:36,130 kódrészletek, itt és ott, ahol ez?: szintaxis, 181 00:08:36,130 --> 00:08:39,120 AKA A háromkomponensű üzemeltető, használják. 182 00:08:39,120 --> 00:08:40,960 >> Tehát gyors összefoglalót mi feltételes vannak, 183 00:08:40,960 --> 00:08:44,210 és milyen lehetőségek állnak rendelkezésre Önnek C. Van Ha és amennyiben-mást, 184 00:08:44,210 --> 00:08:46,860 és ha else if, satöbbi. 185 00:08:46,860 --> 00:08:50,880 Használhatja logikai kifejezések azok számára, hogy a döntéseket. 186 00:08:50,880 --> 00:08:53,720 >> A kapcsoló nyilatkozatok használata diszkrét esetben döntéseket hozni. 187 00:08:53,720 --> 00:08:57,540 Azt konkrétan azt mondják, ha ez Egy, vagy ha ez a két, vagy ha ez a három, 188 00:08:57,540 --> 00:09:00,870 Én ezt a dolgot, vagy ez a dolog, vagy ez a dolog. 189 00:09:00,870 --> 00:09:04,660 És?: Lehet, hogy kell használni, hogy cserélje ki Nagyon egyszerű if-else ág, 190 00:09:04,660 --> 00:09:08,490 vagy if-else láncok, hogy A kód nézni egy kicsit divatos. 191 00:09:08,490 --> 00:09:09,250 >> Én Doug Lloyd. 192 00:09:09,250 --> 00:09:11,410 És ez CS50. 193 00:09:11,410 --> 00:09:12,959