1 00:00:00,000 --> 00:00:05,140 2 00:00:05,140 --> 00:00:05,640 Iawn. 3 00:00:05,640 --> 00:00:08,330 Felly nawr gadewch i ni siarad am rywbeth ddefnyddiol iawn yn programming-- 4 00:00:08,330 --> 00:00:09,914 Datganiadau amodol. 5 00:00:09,914 --> 00:00:11,830 Ymadroddion Felly amodol caniatáu eich rhaglenni 6 00:00:11,830 --> 00:00:14,538 i wneud penderfyniadau a chymryd gwahanol ffyrc yn y ffordd, rhywbeth 7 00:00:14,538 --> 00:00:17,670 Yr wyf yn cyfeirio at ychydig yn gynharach, gan ddibynnu ar werthoedd newidynnau, 8 00:00:17,670 --> 00:00:20,990 neu yn seiliedig ar yr hyn y mae'r mewnbynnau defnyddiwr yn y rhaglennydd, yn y llinell orchymyn, 9 00:00:20,990 --> 00:00:23,130 neu os oes gennych brydlon neu rywbeth fel 'na. 10 00:00:23,130 --> 00:00:26,690 C Mae un neu ddau o wahanol ffyrdd o mynegi mynegiadau amodol, sy'n 11 00:00:26,690 --> 00:00:29,911 rydym hefyd weithiau bydd galw cangen amodol yn eich rhaglenni. 12 00:00:29,911 --> 00:00:32,910 Ac mae rhai o'r rhain yn mynd i edrych 'n bert gyfarwydd i chi o'r newydd, 13 00:00:32,910 --> 00:00:35,190 felly byddwn yn hyd yn oed eu tynnu fyny ochr yn ochr, dim ond 14 00:00:35,190 --> 00:00:38,170 gallwch wneud hynny gyfatebiaeth yn eich pen. 15 00:00:38,170 --> 00:00:41,250 >> Felly, Os-- os yw 'n bert syml amodol. 16 00:00:41,250 --> 00:00:43,560 Os cofiwch o crafu ar y dde yma 17 00:00:43,560 --> 00:00:50,000 gallech lenwi hynny yw hecsagon gyda mynegiant glas os llygoden i lawr 18 00:00:50,000 --> 00:00:53,010 neu os x yn llai na 10, neu rywbeth fel 'na. 19 00:00:53,010 --> 00:00:57,390 Ac yna, os x yn llai na 10, neu os yw'r llygoden mewn gwirionedd, i lawr, 20 00:00:57,390 --> 00:01:01,140 pob un o'r cod tu mewn i'r Byddai darn pos gweithredu. 21 00:01:01,140 --> 00:01:03,720 Mae'r holl bethau sy'n cyd-fynd tu mewn y siâp C. 22 00:01:03,720 --> 00:01:07,200 >> Yn yr un modd, a oes gennym os ar y chwith yno. 23 00:01:07,200 --> 00:01:09,210 Os mynegiad Boole, sy'n Im 'jyst yn defnyddio 24 00:01:09,210 --> 00:01:13,010 yn lle un o'r Boole ymadroddion yr ydym yn ei drafod yn flaenorol, 25 00:01:13,010 --> 00:01:15,240 Brace cyrliog agored, Brace cyrliog agos. 26 00:01:15,240 --> 00:01:17,720 Felly meddyliwch am cyrliog agored Brace a Brace cyrliog caeedig 27 00:01:17,720 --> 00:01:22,720 fel math o debyg i frechdan effaith y bloc os ar y dde 28 00:01:22,720 --> 00:01:24,070 o'r dechrau. 29 00:01:24,070 --> 00:01:28,680 >> Os bydd y mynegiad Boole yn y datganiad os yn wir, 30 00:01:28,680 --> 00:01:30,900 Yna holl linellau o god rhwng y braces cyrliog 31 00:01:30,900 --> 00:01:33,870 Bydd gweithredu er mwyn o'r top i'r gwaelod. 32 00:01:33,870 --> 00:01:35,700 Os bydd y mynegiad Boole yn ffug, rydym chi helpu 33 00:01:35,700 --> 00:01:38,610 sgipio dros phopeth rhyngddynt y braces cyrliog, gan mai dim ond 34 00:01:38,610 --> 00:01:44,570 eisiau mynd i lawr y fforch yn y ffordd os yw'r mynegiad Boole yn wir. 35 00:01:44,570 --> 00:01:48,540 >> Gallwn gymryd hyn un cam ymhellach â hwy os arall. 36 00:01:48,540 --> 00:01:50,820 Felly, mae hyn bloc Scratch yn 'n bert debyg i'r un 37 00:01:50,820 --> 00:01:55,884 gwelsom yn unig eiliad yn ôl, ac eithrio mae'n cymryd dau lwybr gwahanol yn seiliedig 38 00:01:55,884 --> 00:01:56,550 ar yr hyn sy'n digwydd. 39 00:01:56,550 --> 00:02:00,420 Felly os y llygoden i lawr, neu os x yn llai na 10, 40 00:02:00,420 --> 00:02:04,780 byddwn yn gwneud popeth sy'n rhyngddynt hynny fforch gyntaf, hynny C. cyntaf, 41 00:02:04,780 --> 00:02:08,430 >> Fel arall, os bydd y llygoden yn i fyny, neu x yn llai na 10, 42 00:02:08,430 --> 00:02:10,460 byddwn yn gwneud popeth yn yr ail set. 43 00:02:10,460 --> 00:02:15,010 Ac mae hynny'n cyfateb i'r hyn a welwch yma am fynegiant C. Os Boole, 44 00:02:15,010 --> 00:02:17,910 gwneud y pethau rhwng y gosod cyntaf o braces cyrliog. 45 00:02:17,910 --> 00:02:20,550 Else, yn gwneud y pethau rhwng y ail set o braces cyrliog. 46 00:02:20,550 --> 00:02:22,080 Felly, os yw'r Boole mynegiant yn wir, yr ydym chi helpu 47 00:02:22,080 --> 00:02:23,580 gwneud beth bynnag sydd rhwng y set gyntaf. 48 00:02:23,580 --> 00:02:27,480 Os bydd y mynegiad Boole yn ffug, a fyddai'n ysgogi'r arall, 49 00:02:27,480 --> 00:02:30,100 a byddem yn gwneud beth bynnag yn yr ail set o braces cyrliog. 50 00:02:30,100 --> 00:02:34,190 Unwaith eto, top i'r gwaelod, pob llinellau rhwng y braces. 51 00:02:34,190 --> 00:02:38,130 >> Yn C, mae'n bosibl creu cadwyn os-arall os-arall. 52 00:02:38,130 --> 00:02:42,000 Mewn gwirionedd gallwch ei gael os-arall os-arall os-arall, os, ac yn y blaen ac yn y blaen ac yn y blaen 53 00:02:42,000 --> 00:02:42,720 ar. 54 00:02:42,720 --> 00:02:44,660 Yn Scratch, sy'n ofynnol hon nythu blociau. 55 00:02:44,660 --> 00:02:48,280 Yr ydych yn ychwanegu arall os-, a bu'n rhaid i chi rhoi un arall tu mewn i'r arall, 56 00:02:48,280 --> 00:02:51,110 ac yn y blaen, ac mae'n got garedig o nythu a chymhleth. 57 00:02:51,110 --> 00:02:52,450 Ond C, nid oes gennym i wneud hynny. 58 00:02:52,450 --> 00:02:55,300 Gallwn mewn gwirionedd yn unig wedi fod yn gadwyn fel hyn. 59 00:02:55,300 --> 00:02:58,350 Unwaith eto, fel y byddech yn disgwyl, i gyd canghennau hyn yn annibynnol ar ei gilydd. 60 00:02:58,350 --> 00:03:00,750 Dim ond y gallwch chi fynd i lawr un o'r gangen. 61 00:03:00,750 --> 00:03:02,270 Os yw hyn yn wir. 62 00:03:02,270 --> 00:03:03,930 Fel arall, os yw hyn yn wir. 63 00:03:03,930 --> 00:03:05,700 Fel arall, os yw hyn yn wir. 64 00:03:05,700 --> 00:03:07,120 Fel arall, yn gwneud hyn. 65 00:03:07,120 --> 00:03:11,010 Felly pob un o'r pedwar o'r canghennau yn hyn enghraifft yn annibynnol ar ei gilydd. 66 00:03:11,010 --> 00:03:14,900 Mae'n cadwyn os-arall os-arall. 67 00:03:14,900 --> 00:03:17,580 >> Mae'n bosibl, fodd bynnag, ac weithiau yn ddefnyddiol iawn, 68 00:03:17,580 --> 00:03:20,950 i greu cadwyn o beidio canghennau annibynnol ar ei gilydd. 69 00:03:20,950 --> 00:03:24,600 Yn yr enghraifft hon, dim ond y trydydd a'r canghennau pedwerydd yn annibynnol ar ei gilydd. 70 00:03:24,600 --> 00:03:27,450 Gallai fod yn bod gallech bodloni'r amod cyntaf, 71 00:03:27,450 --> 00:03:29,396 a gallech fodloni yr ail amod, 72 00:03:29,396 --> 00:03:31,770 a gallech fodloni'r trydydd condition-- ac yn yr achos 73 00:03:31,770 --> 00:03:35,270 byddech yn mynd i lawr y gangen gyntaf, Yna, byddwch yn mynd i lawr yr ail gangen, 74 00:03:35,270 --> 00:03:37,000 yna byddech yn mynd i lawr y drydedd gangen. 75 00:03:37,000 --> 00:03:40,450 Neu efallai eich bod yn bodloni'r cyntaf cyflwr, ac mae'r ail amod, 76 00:03:40,450 --> 00:03:42,770 ond nad ydych yn bodloni'r y trydydd amod. 77 00:03:42,770 --> 00:03:46,230 Yn yr achos hwn byddwch yn mynd i lawr y cyntaf cangen a'r ail gangen, 78 00:03:46,230 --> 00:03:48,040 ac yna y bedwaredd gangen, 79 00:03:48,040 --> 00:03:51,392 >> Y rheswm am hyn yw bod y arall dim ond rhwymo i'r agosaf os. 80 00:03:51,392 --> 00:03:53,100 Felly, hyd yn oed er mae ' yn arall yma, sy'n 81 00:03:53,100 --> 00:03:56,490 nid yw o reidrwydd yn creu i'r ddwy ochr cadwyn unigryw o bopeth. 82 00:03:56,490 --> 00:04:00,890 Mae'n dim ond y mynegiant yno gyda Boolean 83 00:04:00,890 --> 00:04:05,040 mynegiant 3-- dyna'r annibynnol ar ei gilydd gyda'r arall. 84 00:04:05,040 --> 00:04:07,580 Felly mae'n bosibl, ac weithiau yn eithaf defnyddiol, 85 00:04:07,580 --> 00:04:11,772 fel y dywedais, er mwyn creu cadwyn o ganghennau nad annibynnol ar ei gilydd. 86 00:04:11,772 --> 00:04:14,230 Gadewch i ni edrych ar wahanol math o amodol, sy'n 87 00:04:14,230 --> 00:04:17,392 nad ydych wedi gweld o'r blaen yn Scratch. 88 00:04:17,392 --> 00:04:19,369 Mae rhywbeth a elwir yn y datganiad switsh. 89 00:04:19,369 --> 00:04:21,410 Mae'r datganiad switsh yn math o daclus am ei fod yn 90 00:04:21,410 --> 00:04:25,930 datganiad amodol sy'n caniatáu chi nodi achosion penodol, 91 00:04:25,930 --> 00:04:28,926 hytrach na dibynnu ar Boole ymadroddion i wneud penderfyniadau ar eich rhan. 92 00:04:28,926 --> 00:04:31,050 Felly, er enghraifft, gadewch i ni ddweud fod gennyf y rhaglen hon, 93 00:04:31,050 --> 00:04:34,110 ac rwy'n gofyn i'r defnyddiwr i ddarparu mewnbwn i mi. 94 00:04:34,110 --> 00:04:37,170 Felly, yr wyf yn dweud, int x = Get Int (), ac os nad ydych yn gyfarwydd eto, 95 00:04:37,170 --> 00:04:40,190 cael int yn swyddogaeth sy'n hefyd yn cynnwys yn y llyfrgell CS50, 96 00:04:40,190 --> 00:04:44,610 felly os ydych #include CS50.H bydd gennych mynediad i Get Int () a phob un o'i 97 00:04:44,610 --> 00:04:46,840 cousins-- GetFloat, GetString, ac yn y blaen. 98 00:04:46,840 --> 00:04:52,590 Yn y bôn un Cael swyddogaeth ar gyfer pob Math o ddata yr ydym eisoes wedi ei drafod. 99 00:04:52,590 --> 00:04:53,970 >> Felly Int x hafal GetInt. 100 00:04:53,970 --> 00:04:56,390 Yn y bôn yr hyn sy'n digwydd yw fy mod yn y derfynell. 101 00:04:56,390 --> 00:04:58,790 Rwy'n gofyn i'r defnyddiwr i deipio mewn nifer. 102 00:04:58,790 --> 00:05:02,300 >> A dyma i ddim yn newid yr hyn rwy'n ei wneud, yn dibynnu 103 00:05:02,300 --> 00:05:05,060 ar yr hyn y defnyddiwr deipio wrth yr anogwr. 104 00:05:05,060 --> 00:05:09,147 Felly, os ydynt teipio un, yr wyf yn argraffu un. 105 00:05:09,147 --> 00:05:09,855 Ac yna yr wyf yn torri. 106 00:05:09,855 --> 00:05:12,590 107 00:05:12,590 --> 00:05:15,510 Os ydynt teipiwch dau, yr wyf yn argraffu dau. 108 00:05:15,510 --> 00:05:16,690 Ac yna yr wyf yn torri. 109 00:05:16,690 --> 00:05:19,060 Mae'n bwysig torri rhwng pob achos 110 00:05:19,060 --> 00:05:20,890 oherwydd fel arall byddwch yn syrthio trwodd. 111 00:05:20,890 --> 00:05:23,380 Felly os nad oedd gan unrhyw wyf gwyliau yno, ac mae'r defnyddiwr 112 00:05:23,380 --> 00:05:31,380 un wedi'i deipio, beth fyddai'n digwydd yw hi Byddai argraffu un, dau, tri, mae'n ddrwg gennyf. 113 00:05:31,380 --> 00:05:33,099 Dyna fath o ymddygiad rhyfedd, dde? 114 00:05:33,099 --> 00:05:33,890 Efallai y byddwch yn credu hynny. 115 00:05:33,890 --> 00:05:36,480 Ond mae mewn gwirionedd rhai achosion lle gallai hyn fod yn beth eithaf defnyddiol. 116 00:05:36,480 --> 00:05:39,730 Felly dyma enghraifft arall o swits Datganiad lle rwy'n hepgorer y seibiannau. 117 00:05:39,730 --> 00:05:42,030 Ond yr wyf yn ei wneud ar bwrpas. 118 00:05:42,030 --> 00:05:43,030 >> Felly beth sy'n digwydd yma? 119 00:05:43,030 --> 00:05:43,821 Meddyliwch am eiliad. 120 00:05:43,821 --> 00:05:45,960 Efallai y byddwch hyd yn oed am i oedi y fideo. 121 00:05:45,960 --> 00:05:48,230 >> Beth sy'n digwydd yma os y mathau defnyddiwr pedwar? 122 00:05:48,230 --> 00:05:51,190 123 00:05:51,190 --> 00:05:53,860 Felly, yr wyf wedi gofyn i'r defnyddiwr ar gyfer mewnbwn. 124 00:05:53,860 --> 00:05:56,560 Ac maent yn darparu gwerth 4. 125 00:05:56,560 --> 00:05:59,545 Beth sy'n cael ei Printiwyd pan fyddaf yn gwneud hynny? 126 00:05:59,545 --> 00:06:02,170 Ar y sleid flaenorol, roedd seibiannau rhwng yr holl achosion. 127 00:06:02,170 --> 00:06:04,750 Ac felly y byddai dim ond argraffu pedwar ac yna stopio. 128 00:06:04,750 --> 00:06:06,610 Ond yn yr achos hwn, ni fydd. 129 00:06:06,610 --> 00:06:10,700 Beth fydd yn digwydd yw eich bod yn disgyn drwy bob achos. 130 00:06:10,700 --> 00:06:14,890 >> Felly, yn yr achos hwn rwyf wedi trefnu fy achosion yn y fath fodd, os y mathau defnyddiwr 4, 131 00:06:14,890 --> 00:06:20,070 Byddaf argraffu pedwar, tri, dau, un, chwyth i ffwrdd. 132 00:06:20,070 --> 00:06:22,780 Ac os ydynt yn teipio 5, byddwn yn dechrau mewn pump a gwneud yr un peth. 133 00:06:22,780 --> 00:06:26,410 Os ydynt yn teipio 1, fyddwn i dim ond gwneud un, chwyth i ffwrdd. 134 00:06:26,410 --> 00:06:28,715 >> Felly, yn yr achos hwn, Im 'yn arfer switsh fath o glyfar, felly 135 00:06:28,715 --> 00:06:30,804 fy mod yn bwriadu syrthio drwy'r holl achosion. 136 00:06:30,804 --> 00:06:33,720 Ond yn gyffredinol mae'n debyg eich bod yn gonna eisiau i dorri rhwng bob un ohonynt, 137 00:06:33,720 --> 00:06:36,090 oni bai fod gennych sefyllfa fel hon lle rydych chi'n 138 00:06:36,090 --> 00:06:40,081 fath o ddylanwad busnes y ffaith wnewch chi helpu syrthio drwy'r achosion heb doriad. 139 00:06:40,081 --> 00:06:42,830 Felly dyna yr ail o'r prif mathau o ddatganiadau amodol. 140 00:06:42,830 --> 00:06:47,139 Yr olaf o'r rhain yw:? Felly, yr wyf cael dau pytiau o god C yma. 141 00:06:47,139 --> 00:06:48,680 Mae un ar y chwith ac un ar y dde. 142 00:06:48,680 --> 00:06:52,330 Yr un ar y chwith dylai yn ôl pob tebyg fod yn eithaf gyfarwydd i chi. 143 00:06:52,330 --> 00:06:55,110 >> Mae gen i Int x. 144 00:06:55,110 --> 00:06:57,167 Ac yr wyf yn ôl pob tebyg dylai wedi gofyn i'r defnyddiwr 145 00:06:57,167 --> 00:07:00,250 for-- yn ôl pob tebyg dylai hyn fod Int x yn hafal i GetInt, neu rywbeth fel 'na. 146 00:07:00,250 --> 00:07:03,030 147 00:07:03,030 --> 00:07:05,240 Ac yna i ddim yn gwneud penderfyniad. 148 00:07:05,240 --> 00:07:11,700 Os yw rhai mynegiad Boole yn yn wir, aseinio x werth 5. 149 00:07:11,700 --> 00:07:13,590 Fel arall, aseinio x werth 6. 150 00:07:13,590 --> 00:07:16,548 >> Mae'n debyg Dylai hynny ar y chwith yn 'n bert cyfarwydd gan ein trafodaeth 151 00:07:16,548 --> 00:07:18,160 o Os Else ychydig funudau'n ôl. 152 00:07:18,160 --> 00:07:20,535 A fyddech yn synnu i wybod bod y llinell ar y dde 153 00:07:20,535 --> 00:07:22,310 yn gwneud yr un peth yn union? 154 00:07:22,310 --> 00:07:26,140 >> Felly, gelwir hyn yn:? Neu weithiau Gelwir y gweithredwr teiran. 155 00:07:26,140 --> 00:07:27,450 Ac mae'n 'n bert oera. 156 00:07:27,450 --> 00:07:29,110 Mae'n cael ei ddefnyddio fel arfer fel tric 'n giwt. 157 00:07:29,110 --> 00:07:35,777 >> Ond beth mae'n caniatáu i chi ei wneud yw efelychu Os Else gyda wir yn fach, 158 00:07:35,777 --> 00:07:37,610 'n sylweddol trivially fyr canghennau amodol. 159 00:07:37,610 --> 00:07:41,470 Yn gyffredinol, ni fyddai defnyddio:? Os ydych Roedd gan chwech o linellau o god rhwng pob set 160 00:07:41,470 --> 00:07:42,569 bresys o cyrliog. 161 00:07:42,569 --> 00:07:44,360 Ond os ydych yn unig gwneud penderfyniad cyflym, 162 00:07:44,360 --> 00:07:47,520 os ydych chi'n mynd i wneud un peth neu y llall ac mae'n syml iawn, 163 00:07:47,520 --> 00:07:52,240 gallai hyn fod yn enghraifft o sut i wneud hynny gyda:? gweithredwr teiran. 164 00:07:52,240 --> 00:07:56,940 Felly Int x hafal mynegiant? 165 00:07:56,940 --> 00:07:59,470 Y peth ar ôl y cwestiwn marc yw'r hyn x yn werth 166 00:07:59,470 --> 00:08:02,690 Bydd yn cael ei os mynegiant yn wir. 167 00:08:02,690 --> 00:08:05,330 >> Y peth ar ôl y colon yw pa werth x yn 168 00:08:05,330 --> 00:08:07,990 fyddai pe y mynegiant yn ffug. 169 00:08:07,990 --> 00:08:11,510 Felly, rwy'n gofyn fy hun, yw'r ymadrodd yn wir? 170 00:08:11,510 --> 00:08:13,870 Os ydyw, aseinio x werth 5. 171 00:08:13,870 --> 00:08:16,619 Os nad yw'n, aseinio x werth 6. 172 00:08:16,619 --> 00:08:17,410 Eto, fel y dywedais. 173 00:08:17,410 --> 00:08:18,670 Mae hyn yn unig tric 'n giwt fel arfer. 174 00:08:18,670 --> 00:08:20,430 Ac weithiau os byddwch yn mynd yn wir yn gyfforddus ag ef, 175 00:08:20,430 --> 00:08:22,820 byddwch yn gwneud hyn oherwydd ei fod yn edrych fath o oer yn eich rhaglenni. 176 00:08:22,820 --> 00:08:25,710 Yn gyffredinol, Im 'gyflwyno i'r ydych yn awr felly eich bod yn gyfarwydd ag ef 177 00:08:25,710 --> 00:08:26,990 os ydych yn ei weld. 178 00:08:26,990 --> 00:08:30,080 Ond yn sicr yn gwybod nad oes gennych i ysgrifennu iddo yn unrhyw un eich cod. 179 00:08:30,080 --> 00:08:33,246 Ond mae'n rhywbeth i fod yn gyfarwydd â nhw, oherwydd byddwch yn bendant yn dod ar draws 180 00:08:33,246 --> 00:08:36,130 pytiau o god yma ac yno lle mae hyn:? cystrawen, 181 00:08:36,130 --> 00:08:39,120 AKA gweithredwr teiran, yn cael ei ddefnyddio. 182 00:08:39,120 --> 00:08:40,960 >> Crynodeb Felly cyflym ar pa conditionals yw, 183 00:08:40,960 --> 00:08:44,210 a beth yw'r opsiynau sydd ar gael i chi yn C. Mae gennych Os, ac os-arall, 184 00:08:44,210 --> 00:08:46,860 ac os arall os, et cetera. 185 00:08:46,860 --> 00:08:50,880 Gallwch ddefnyddio ymadroddion Boole ar gyfer y rhai i wneud penderfyniadau. 186 00:08:50,880 --> 00:08:53,720 >> Â datganiadau switsh a ddefnyddiwch achosion ar wahân i wneud penderfyniadau. 187 00:08:53,720 --> 00:08:57,540 Fyddech chi'n ei ddweud yn benodol, os yw'n un, neu os yw'n dau, neu os yw'n tri, 188 00:08:57,540 --> 00:09:00,870 Fe wna i peth hyn, neu y peth hyn, neu y peth hyn. 189 00:09:00,870 --> 00:09:04,660 A:? Gellir i gael ei ddefnyddio i gymryd lle os-arall yn ganghennau syml iawn, 190 00:09:04,660 --> 00:09:08,490 neu os-arall gadwyni i wneud eich cod yn edrych ychydig yn ffansi. 191 00:09:08,490 --> 00:09:09,250 >> Rwy'n Doug Lloyd. 192 00:09:09,250 --> 00:09:11,410 Ac mae hyn yn CS50. 193 00:09:11,410 --> 00:09:12,959