1 00:00:00,000 --> 00:00:05,140 2 00:00:05,140 --> 00:00:05,640 Добра. 3 00:00:05,640 --> 00:00:08,330 Так што цяпер давайце пагаворым пра што-то вельмі карысна ў programming-- 4 00:00:08,330 --> 00:00:09,914 ўмоўныя аператары. 5 00:00:09,914 --> 00:00:11,830 Так ўмоўныя выразы дазваляюць вашы праграмы 6 00:00:11,830 --> 00:00:14,538 каб прымаць рашэнні і розныя відэльцы ў дарозе, то 7 00:00:14,538 --> 00:00:17,670 Я спасылаўся на крыху раней, у залежнасці ад значэнняў зменных, 8 00:00:17,670 --> 00:00:20,990 або на аснове таго, што карыстач уводзіць у праграміст, у камандным радку, 9 00:00:20,990 --> 00:00:23,130 або калі ў вас ёсць запрашэнне ці нешта падобнае. 10 00:00:23,130 --> 00:00:26,690 З мае некалькі розных спосабаў выказаць ўмоўныя выразы, якія 11 00:00:26,690 --> 00:00:29,911 мы таксама часам будзе выклікаць ўмоўны пераход у вашых праграмах. 12 00:00:29,911 --> 00:00:32,910 І некаторыя з іх будуць глядзець вельмі знаёма вам з нуля, 13 00:00:32,910 --> 00:00:35,190 так што мы нават цягнуць іх бок аб бок, як раз 14 00:00:35,190 --> 00:00:38,170 Вы можаце зрабіць гэтую аналогію ў вашай галаве. 15 00:00:38,170 --> 00:00:41,250 >> Так, калі if-- даволі проста ўмоўна. 16 00:00:41,250 --> 00:00:43,560 Калі вы памятаеце з драпіна на правым тут 17 00:00:43,560 --> 00:00:50,000 Вы маглі б запоўніць гэта шасцікутнік з сінім выразы, калі мыш ўніз 18 00:00:50,000 --> 00:00:53,010 або калі х менш 10, ці нешта падобнае. 19 00:00:53,010 --> 00:00:57,390 І тады, калі х менш 10, або, калі мыш на самай справе, ўніз, 20 00:00:57,390 --> 00:01:01,140 увесь код ўнутранай часткі кавалак галаваломкі будзе выконваць. 21 00:01:01,140 --> 00:01:03,720 Усе рэчы, якія адпавядаюць ўнутры гэтай формы C. 22 00:01:03,720 --> 00:01:07,200 >> Сапраўды гэтак жа, у нас ёсць калі злева няма. 23 00:01:07,200 --> 00:01:09,210 Калі лагічнае выраз, які я толькі з дапамогай 24 00:01:09,210 --> 00:01:13,010 ў якасці заменніка аднаго з Boolean выразы мы раней, 25 00:01:13,010 --> 00:01:15,240 адкрыты фігурная дужка, недалёка фігурная дужка. 26 00:01:15,240 --> 00:01:17,720 Так што думайце адкрытага кучаравых дужка і закрыты фігурная дужка 27 00:01:17,720 --> 00:01:22,720 як свайго роду аналагам бутэрброд эфект, калі блок на правай 28 00:01:22,720 --> 00:01:24,070 з нуля. 29 00:01:24,070 --> 00:01:28,680 >> Калі лагічнае выраз ў заяве, калі гэта праўда, 30 00:01:28,680 --> 00:01:30,900 то ўсе радкі кода паміж фігурнымі дужкамі 31 00:01:30,900 --> 00:01:33,870 будзе выконвацца ў парадку зверху данізу. 32 00:01:33,870 --> 00:01:35,700 Калі лагічнае выраз з'яўляецца ілжывым, мы будзем 33 00:01:35,700 --> 00:01:38,610 прапусціць ўсё паміж фігурныя дужкі, таму што мы толькі 34 00:01:38,610 --> 00:01:44,570 хачу пайсці ўніз, што відэлец ў дарозе калі лагічны выраз праўдзіва. 35 00:01:44,570 --> 00:01:48,540 >> Мы можам прыняць гэта яшчэ адзін крок далей з тым, калі яшчэ. 36 00:01:48,540 --> 00:01:50,820 Так што гэта драпін блок вельмі падобны на той, 37 00:01:50,820 --> 00:01:55,884 мы бачылі толькі секунду назад, за выключэннем ён прымае два розных шляху, заснаваныя 38 00:01:55,884 --> 00:01:56,550 пра тое, што адбываецца. 39 00:01:56,550 --> 00:02:00,420 Такім чынам, калі мыш была ўніз, або калі х было менш, чым 10, 40 00:02:00,420 --> 00:02:04,780 мы зробім усё, што ў перыяд паміж што ў першую відэльцы, што ў першую С., 41 00:02:04,780 --> 00:02:08,430 >> У адваротным выпадку, калі мыш да, або х ня менш, чым 10, 42 00:02:08,430 --> 00:02:10,460 мы зробім усё, у другім сэце. 43 00:02:10,460 --> 00:02:15,010 І гэта аналагічна таму, што вы бачыце тут C. Калі лагічнае выраз, 44 00:02:15,010 --> 00:02:17,910 зрабіць рэчы паміж першы набор фігурных дужках. 45 00:02:17,910 --> 00:02:20,550 У адваротным выпадку, зрабіць рэчы паміж другі набор фігурных дужак. 46 00:02:20,550 --> 00:02:22,080 Так што, калі лагічны выраз праўдзіва, мы будзем 47 00:02:22,080 --> 00:02:23,580 рабіць усё, што знаходзіцца паміж першым наборам. 48 00:02:23,580 --> 00:02:27,480 Калі лагічнае выраз хлусня, што б курок яшчэ, 49 00:02:27,480 --> 00:02:30,100 і мы хацелі б зрабіць што б ні ў другі набор фігурных дужках. 50 00:02:30,100 --> 00:02:34,190 Зноў жа, зверху ўніз, усё лініі ў паміж дужкамі. 51 00:02:34,190 --> 00:02:38,130 >> У C, гэта магчыма, каб стварыць ПЧ-то яшчэ, калі-інакш ланцуг. 52 00:02:38,130 --> 00:02:42,000 На самай справе вы можаце мець, калі-інакш, калі-інакш калі-інакш, калі, і гэтак далей, і гэтак далей, і гэтак 53 00:02:42,000 --> 00:02:42,720 на. 54 00:02:42,720 --> 00:02:44,660 У пустым, для гэтага патрабуецца гнездавання блокі. 55 00:02:44,660 --> 00:02:48,280 Вы дадайце, калі-інакш, і вы павінны былі паклаў яшчэ адзін ўнутры яшчэ, 56 00:02:48,280 --> 00:02:51,110 і гэтак далей, і ён атрымаў выгляд ўкладзеных і складаным. 57 00:02:51,110 --> 00:02:52,450 Але С, мы не павінны гэтага рабіць. 58 00:02:52,450 --> 00:02:55,300 Мы можам на самай справе проста гэта будзе ланцужок, як гэта. 59 00:02:55,300 --> 00:02:58,350 Зноў жа, як вы маглі б чакаць, усё гэтыя галіны з'яўляюцца ўзаемавыключальнымі. 60 00:02:58,350 --> 00:03:00,750 Вы можаце толькі калі-небудзь па адным з філіяла. 61 00:03:00,750 --> 00:03:02,270 Калі гэта праўда. 62 00:03:02,270 --> 00:03:03,930 У адваротным выпадку, калі гэта праўда. 63 00:03:03,930 --> 00:03:05,700 У адваротным выпадку, калі гэта праўда. 64 00:03:05,700 --> 00:03:07,120 У адваротным выпадку, зрабіць гэта. 65 00:03:07,120 --> 00:03:11,010 Такім чынам, усе чатыры галіны ў гэты Прыклад з'яўляюцца ўзаемавыключальнымі. 66 00:03:11,010 --> 00:03:14,900 Гэта, калі-інакш, калі-інакш ланцуг. 67 00:03:14,900 --> 00:03:17,580 >> Магчыма, хоць, а часам і вельмі карысна, 68 00:03:17,580 --> 00:03:20,950 стварыць ланцужок ня ўзаемавыключальныя філіялы. 69 00:03:20,950 --> 00:03:24,600 У гэтым прыкладзе, толькі трэці і чацвёрты філіялы з'яўляюцца ўзаемавыключальнымі. 70 00:03:24,600 --> 00:03:27,450 Гэта можа быць, што вы маглі б задавальняе першаму умове, 71 00:03:27,450 --> 00:03:29,396 і вы маглі б задаволіць другая ўмова, 72 00:03:29,396 --> 00:03:31,770 і вы маглі б задаволіць трэцяя condition-- ў гэтым выпадку 73 00:03:31,770 --> 00:03:35,270 Вы б пайсці ўніз першае аддзяленне, Затым вы спусціцеся другі філіял, 74 00:03:35,270 --> 00:03:37,000 то вы б спусціцца трэцюю галіна. 75 00:03:37,000 --> 00:03:40,450 Або, магчыма, вы задавальняе першым стан, а другая ўмова, 76 00:03:40,450 --> 00:03:42,770 але вы не задавальняюць трэцяе ўмова. 77 00:03:42,770 --> 00:03:46,230 У гэтым выпадку вы спусціцеся першым Філіял і другая галіна, 78 00:03:46,230 --> 00:03:48,040 а затым чацвёрты філіял, 79 00:03:48,040 --> 00:03:51,392 >> Прычына гэтага ў тым, што яшчэ будзе звязвацца толькі з бліжэйшым калі. 80 00:03:51,392 --> 00:03:53,100 Таму, нават калі ёсць яшчэ тут, што 81 00:03:53,100 --> 00:03:56,490 не абавязкова стварае ўзаемна Эксклюзіўны ланцуг ўсё. 82 00:03:56,490 --> 00:04:00,890 Гэта толькі выраз там з Boolean 83 00:04:00,890 --> 00:04:05,040 Выраз 3-- гэта ўзаемавыключальнымі з яшчэ. 84 00:04:05,040 --> 00:04:07,580 Так што, магчыма, і часам вельмі карысна, 85 00:04:07,580 --> 00:04:11,772 як я ўжо сказаў, каб стварыць ланцужок ня ўзаемавыключальныя філіялы. 86 00:04:11,772 --> 00:04:14,230 Давайце зірнем на іншы выгляд ўмоўнага, што 87 00:04:14,230 --> 00:04:17,392 Вы не бачылі раней у драпіна. 88 00:04:17,392 --> 00:04:19,369 Там нешта называецца перамыкач заяве. 89 00:04:19,369 --> 00:04:21,410 У заяве перамыкач выгляд акуратна, таму што гэта 90 00:04:21,410 --> 00:04:25,930 ўмоўны аператар, які дазваляе пазначыць розныя выпадкі, 91 00:04:25,930 --> 00:04:28,926 замест таго, каб спадзявацца на лагічны выразы для прыняцця рашэнняў для Вас. 92 00:04:28,926 --> 00:04:31,050 Так, напрыклад, скажам, што ў мяне ёсць гэтая праграма, 93 00:04:31,050 --> 00:04:34,110 і я прашу карыстачу ўнесці ўклад у мяне. 94 00:04:34,110 --> 00:04:37,170 Таму я кажу, INT х = Атрымаць Int (), і калі вы не знаёмыя яшчэ, 95 00:04:37,170 --> 00:04:40,190 атрымаць Int з'яўляецца функцыя, таксама ўключаны ў бібліятэцы CS50, 96 00:04:40,190 --> 00:04:44,610 так што калі вы #include CS50.H вы будзеце мець Атрымаць доступ да Int () і ўсе яго 97 00:04:44,610 --> 00:04:46,840 cousins-- GetFloat, GetString, і гэтак далей. 98 00:04:46,840 --> 00:04:52,590 У асноўным адно атрымлівае функцыю для кожнага тып дадзеных, які мы ўжо абмяркоўвалі. 99 00:04:52,590 --> 00:04:53,970 >> Так Int х роўны GetInt. 100 00:04:53,970 --> 00:04:56,390 У асноўным тое, што адбываецца гэта я на тэрмінале. 101 00:04:56,390 --> 00:04:58,790 Я пытаюся карыстачу ўвесці нумар. 102 00:04:58,790 --> 00:05:02,300 >> І вось я пераключэння тое, што я раблю, у залежнасці 103 00:05:02,300 --> 00:05:05,060 на тое, што карыстальнік увёў у камандным радку. 104 00:05:05,060 --> 00:05:09,147 Так што, калі яны ўвялі адзін, я раздрукаваць адно. 105 00:05:09,147 --> 00:05:09,855 І тады я парушу. 106 00:05:09,855 --> 00:05:12,590 107 00:05:12,590 --> 00:05:15,510 Калі яны тыпу два, я раздрукаваць два. 108 00:05:15,510 --> 00:05:16,690 І тады я парушу. 109 00:05:16,690 --> 00:05:19,060 Важна разрыў паміж кожным выпадку 110 00:05:19,060 --> 00:05:20,890 таму што інакш вы праваліцеся. 111 00:05:20,890 --> 00:05:23,380 Так што, калі ў мяне не было якой-небудзь перапынкі там, і карыстальнік 112 00:05:23,380 --> 00:05:31,380 тыпізаваных адным, што здарыцца гэта будзе друкаваць адзін, два, тры, прабачце. 113 00:05:31,380 --> 00:05:33,099 Гэта свайго роду дзіўным паводзінамі, праўда? 114 00:05:33,099 --> 00:05:33,890 Вы маглі б так думаць. 115 00:05:33,890 --> 00:05:36,480 Але на самой справе там некаторых выпадках, калі гэта можа быць даволі карысная рэч. 116 00:05:36,480 --> 00:05:39,730 Дык вось яшчэ адзін прыклад перамыкача Заяву, дзе я апускаю перапынкі. 117 00:05:39,730 --> 00:05:42,030 Але я раблю гэта знарок. 118 00:05:42,030 --> 00:05:43,030 >> Так што тут адбываецца? 119 00:05:43,030 --> 00:05:43,821 Задумайцеся на секунду. 120 00:05:43,821 --> 00:05:45,960 Вы нават можаце прыпыніць відэа. 121 00:05:45,960 --> 00:05:48,230 >> Што адбываецца тут, калі карыстач уводзіць чатыры? 122 00:05:48,230 --> 00:05:51,190 123 00:05:51,190 --> 00:05:53,860 Так што я спытаў у карыстальніка ўвод. 124 00:05:53,860 --> 00:05:56,560 І яны забяспечваюць значэнне 4. 125 00:05:56,560 --> 00:05:59,545 Што друкуецца, калі я гэта зрабіць? 126 00:05:59,545 --> 00:06:02,170 На папярэднім слайдзе, былі перапынкі паміж ўсіх выпадках. 127 00:06:02,170 --> 00:06:04,750 І так бы проста раздрукаваць чатырох, а затым спыніцца. 128 00:06:04,750 --> 00:06:06,610 Але ў дадзеным выпадку, гэта не будзе. 129 00:06:06,610 --> 00:06:10,700 Што здарыцца, вам праваліцца кожным выпадку. 130 00:06:10,700 --> 00:06:14,890 >> Такім чынам, у гэтым выпадку я арганізаваў маіх спраў такім чынам, што калі карыстальнік 4, 131 00:06:14,890 --> 00:06:20,070 Я друкаваць чатыры, тры, два, адзін, ўзлятаць. 132 00:06:20,070 --> 00:06:22,780 І калі яны набралі 5, я хацеў бы пачаць у пяць і рабіць тое ж самае. 133 00:06:22,780 --> 00:06:26,410 Калі яны набралі 1, я б проста зрабіць адзін, ўзлятаць. 134 00:06:26,410 --> 00:06:28,715 >> Такім чынам, у гэтым выпадку, я выкарыстоўваю перамыкач выгляд спрытна так 135 00:06:28,715 --> 00:06:30,804 што я маю намер трапіць праз ўсіх выпадках. 136 00:06:30,804 --> 00:06:33,720 Але ў цэлым вы, верагодна, збіраецца хочам зламаць паміж усімі з іх, 137 00:06:33,720 --> 00:06:36,090 калі ў вас ёсць сітуацыі, як гэты, дзе вы 138 00:06:36,090 --> 00:06:40,081 выгляд выкарыстоўваючы той факт, што вы будзеце праваліцца выпадках без перапынку. 139 00:06:40,081 --> 00:06:42,830 Дык вось другі з найважнейшых Тыпы умоўных аператараў. 140 00:06:42,830 --> 00:06:47,139 Апошні з якіх з'яўляецца: Так што я ёсць два фрагменты кода C тут. 141 00:06:47,139 --> 00:06:48,680 Адзін злева і адзін справа. 142 00:06:48,680 --> 00:06:52,330 Той злева павінны верагодна, будзе даволі знаёмым. 143 00:06:52,330 --> 00:06:55,110 >> У мяне ёсць Int х. 144 00:06:55,110 --> 00:06:57,167 І я, верагодна, варта папрасілі карыстальніка 145 00:06:57,167 --> 00:07:00,250 for-- гэта, верагодна, варта Int х роўная GetInt, ці нешта падобнае. 146 00:07:00,250 --> 00:07:03,030 147 00:07:03,030 --> 00:07:05,240 І тады я прыняцця рашэння. 148 00:07:05,240 --> 00:07:11,700 Калі некаторыя лагічны выраз з'яўляецца праўда, прызначыць х значэнне 5. 149 00:07:11,700 --> 00:07:13,590 У адваротным выпадку, прызначыць х значэнне 6. 150 00:07:13,590 --> 00:07:16,548 >> Гэта злева, верагодна, варта даволі добра знаёмыя з нашай дыскусіі 151 00:07:16,548 --> 00:07:18,160 Калі ў астатняе проста імгненне таму. 152 00:07:18,160 --> 00:07:20,535 Вы былі б здзіўлены ведаць, што лініі справа 153 00:07:20,535 --> 00:07:22,310 робіць тую ж самую рэч? 154 00:07:22,310 --> 00:07:26,140 >> Такім чынам, гэта называецца: часам называецца патройны аператар. 155 00:07:26,140 --> 00:07:27,450 І гэта вельмі выдатна. 156 00:07:27,450 --> 00:07:29,110 Гэта, як правіла, выкарыстоўваецца ў якасці мілы трук. 157 00:07:29,110 --> 00:07:35,777 >> Але тое, што ён дазваляе зрабіць, гэта імітаваць If Else з сапраўды невялікі, 158 00:07:35,777 --> 00:07:37,610 сапраўды трывіяльна кароткі ўмоўныя пераходы. 159 00:07:37,610 --> 00:07:41,470 Вы ўвогуле не выкарыстоўваць: калі вы шэсць радкоў кода паміж кожным наборам 160 00:07:41,470 --> 00:07:42,569 з фігурныя дужкі. 161 00:07:42,569 --> 00:07:44,360 Але калі вы проста што робіць хуткае рашэнне, 162 00:07:44,360 --> 00:07:47,520 калі вы збіраецеся зрабіць адну рэч ці іншай, і гэта вельмі проста, 163 00:07:47,520 --> 00:07:52,240 гэта можа быць прыклад таго, як зрабіць гэта з: патройны аператар. 164 00:07:52,240 --> 00:07:56,940 Так Int х роўны выраз? 165 00:07:56,940 --> 00:07:59,470 Справа пасля пытання знак таго, што Х значэнне 166 00:07:59,470 --> 00:08:02,690 будзе, калі выраз праўдзіва. 167 00:08:02,690 --> 00:08:05,330 >> Справа пасля тоўстай кішкі, што Х значэнне 168 00:08:05,330 --> 00:08:07,990 калі б выраз было ілжывым. 169 00:08:07,990 --> 00:08:11,510 Вось я і пытаюся ў сябе, гэты выраз дакладна? 170 00:08:11,510 --> 00:08:13,870 Калі гэта так, прысвоіць х значэнне 5. 171 00:08:13,870 --> 00:08:16,619 Калі гэта не так, назначце х значэнне 6. 172 00:08:16,619 --> 00:08:17,410 Зноў жа, як я сказаў. 173 00:08:17,410 --> 00:08:18,670 Гэта, як правіла, проста выкрут. 174 00:08:18,670 --> 00:08:20,430 А часам, калі вы сталі сапраўды камфортна з ім, 175 00:08:20,430 --> 00:08:22,820 вы будзеце рабіць гэта, таму што гэта выглядае крута ў вашых праграмах. 176 00:08:22,820 --> 00:08:25,710 Наогул, я ўяўляю яго Вы цяпер так вы знаёмыя з ім 177 00:08:25,710 --> 00:08:26,990 калі вы яго бачыце. 178 00:08:26,990 --> 00:08:30,080 Але, вядома, ведаю, што вы не павінны напісаць яго ў любы з вашага кода. 179 00:08:30,080 --> 00:08:33,246 Але гэта нешта, каб быць знаёмыя з, таму што вы будзеце вызначана сутыкацца 180 00:08:33,246 --> 00:08:36,130 фрагменты кода тут і там, дзе гэта? сінтаксісу, 181 00:08:36,130 --> 00:08:39,120 АКА патройны аператар, выкарыстоўваецца. 182 00:08:39,120 --> 00:08:40,960 >> Так кароткі агляд на тое, што ўмоўныя з'яўляюцца, 183 00:08:40,960 --> 00:08:44,210 і тое, што варыянты Вам у З вас, калі, і калі-інакш, 184 00:08:44,210 --> 00:08:46,860 І калі яшчэ, калі, і гэтак далей. 185 00:08:46,860 --> 00:08:50,880 Вы можаце выкарыстоўваць лагічныя выразы для тых, для прыняцця рашэнняў. 186 00:08:50,880 --> 00:08:53,720 >> З перамыкачом заявы вы карыстаецеся дыскрэтныя выпадкі, каб прымаць рашэнні. 187 00:08:53,720 --> 00:08:57,540 Вы б спецыяльна сказаць, што калі гэта Адзін з іх, або, калі гэта два, або, калі гэта тры, 188 00:08:57,540 --> 00:09:00,870 Я зраблю гэта, або гэтая рэч, ці гэта справа. 189 00:09:00,870 --> 00:09:04,660 І: можа быць выкарыстаны для замены вельмі проста, калі-інакш філіялаў, 190 00:09:04,660 --> 00:09:08,490 або калі-інакш ланцуга, каб зрабіць код выглядаць трохі фантазіі. 191 00:09:08,490 --> 00:09:09,250 >> Я Дуг Лойд. 192 00:09:09,250 --> 00:09:11,410 І гэта CS50. 193 00:09:11,410 --> 00:09:12,959