Добра.
Так што цяпер давайце пагаворым пра што-то вельмі карысна ў programming--
ўмоўныя аператары.
Так ўмоўныя выразы дазваляюць вашы праграмы
каб прымаць рашэнні і розныя відэльцы ў дарозе, то
Я спасылаўся на крыху раней, у залежнасці ад значэнняў зменных,
або на аснове таго, што карыстач уводзіць у праграміст, у камандным радку,
або калі ў вас ёсць запрашэнне ці нешта падобнае.
З мае некалькі розных спосабаў выказаць ўмоўныя выразы, якія
мы таксама часам будзе выклікаць ўмоўны пераход у вашых праграмах.
І некаторыя з іх будуць глядзець вельмі знаёма вам з нуля,
так што мы нават цягнуць іх бок аб бок, як раз
Вы можаце зрабіць гэтую аналогію ў вашай галаве.
>> Так, калі if-- даволі проста ўмоўна.
Калі вы памятаеце з драпіна на правым тут
Вы маглі б запоўніць гэта шасцікутнік з сінім выразы, калі мыш ўніз
або калі х менш 10, ці нешта падобнае.
І тады, калі х менш 10, або, калі мыш на самай справе, ўніз,
увесь код ўнутранай часткі кавалак галаваломкі будзе выконваць.
Усе рэчы, якія адпавядаюць ўнутры гэтай формы C.
>> Сапраўды гэтак жа, у нас ёсць калі злева няма.
Калі лагічнае выраз, які я толькі з дапамогай
ў якасці заменніка аднаго з Boolean выразы мы раней,
адкрыты фігурная дужка, недалёка фігурная дужка.
Так што думайце адкрытага кучаравых дужка і закрыты фігурная дужка
як свайго роду аналагам бутэрброд эфект, калі блок на правай
з нуля.
>> Калі лагічнае выраз ў заяве, калі гэта праўда,
то ўсе радкі кода паміж фігурнымі дужкамі
будзе выконвацца ў парадку зверху данізу.
Калі лагічнае выраз з'яўляецца ілжывым, мы будзем
прапусціць ўсё паміж фігурныя дужкі, таму што мы толькі
хачу пайсці ўніз, што відэлец ў дарозе калі лагічны выраз праўдзіва.
>> Мы можам прыняць гэта яшчэ адзін крок далей з тым, калі яшчэ.
Так што гэта драпін блок вельмі падобны на той,
мы бачылі толькі секунду назад, за выключэннем ён прымае два розных шляху, заснаваныя
пра тое, што адбываецца.
Такім чынам, калі мыш была ўніз, або калі х было менш, чым 10,
мы зробім усё, што ў перыяд паміж што ў першую відэльцы, што ў першую С.,
>> У адваротным выпадку, калі мыш да, або х ня менш, чым 10,
мы зробім усё, у другім сэце.
І гэта аналагічна таму, што вы бачыце тут C. Калі лагічнае выраз,
зрабіць рэчы паміж першы набор фігурных дужках.
У адваротным выпадку, зрабіць рэчы паміж другі набор фігурных дужак.
Так што, калі лагічны выраз праўдзіва, мы будзем
рабіць усё, што знаходзіцца паміж першым наборам.
Калі лагічнае выраз хлусня, што б курок яшчэ,
і мы хацелі б зрабіць што б ні ў другі набор фігурных дужках.
Зноў жа, зверху ўніз, усё лініі ў паміж дужкамі.
>> У C, гэта магчыма, каб стварыць ПЧ-то яшчэ, калі-інакш ланцуг.
На самай справе вы можаце мець, калі-інакш, калі-інакш калі-інакш, калі, і гэтак далей, і гэтак далей, і гэтак
на.
У пустым, для гэтага патрабуецца гнездавання блокі.
Вы дадайце, калі-інакш, і вы павінны былі паклаў яшчэ адзін ўнутры яшчэ,
і гэтак далей, і ён атрымаў выгляд ўкладзеных і складаным.
Але С, мы не павінны гэтага рабіць.
Мы можам на самай справе проста гэта будзе ланцужок, як гэта.
Зноў жа, як вы маглі б чакаць, усё гэтыя галіны з'яўляюцца ўзаемавыключальнымі.
Вы можаце толькі калі-небудзь па адным з філіяла.
Калі гэта праўда.
У адваротным выпадку, калі гэта праўда.
У адваротным выпадку, зрабіць гэта.
Такім чынам, усе чатыры галіны ў гэты Прыклад з'яўляюцца ўзаемавыключальнымі.
Гэта, калі-інакш, калі-інакш ланцуг.
>> Магчыма, хоць, а часам і вельмі карысна,
стварыць ланцужок ня ўзаемавыключальныя філіялы.
У гэтым прыкладзе, толькі трэці і чацвёрты філіялы з'яўляюцца ўзаемавыключальнымі.
Гэта можа быць, што вы маглі б задавальняе першаму умове,
і вы маглі б задаволіць другая ўмова,
і вы маглі б задаволіць трэцяя condition-- ў гэтым выпадку
Вы б пайсці ўніз першае аддзяленне, Затым вы спусціцеся другі філіял,
то вы б спусціцца трэцюю галіна.
Або, магчыма, вы задавальняе першым стан, а другая ўмова,
але вы не задавальняюць трэцяе ўмова.
У гэтым выпадку вы спусціцеся першым Філіял і другая галіна,
а затым чацвёрты філіял,
>> Прычына гэтага ў тым, што яшчэ будзе звязвацца толькі з бліжэйшым калі.
Таму, нават калі ёсць яшчэ тут, што
не абавязкова стварае ўзаемна Эксклюзіўны ланцуг ўсё.
Гэта толькі выраз там з Boolean
Выраз 3-- гэта ўзаемавыключальнымі з яшчэ.
Так што, магчыма, і часам вельмі карысна,
як я ўжо сказаў, каб стварыць ланцужок ня ўзаемавыключальныя філіялы.
Давайце зірнем на іншы выгляд ўмоўнага, што
Вы не бачылі раней у драпіна.
Там нешта называецца перамыкач заяве.
У заяве перамыкач выгляд акуратна, таму што гэта
ўмоўны аператар, які дазваляе пазначыць розныя выпадкі,
замест таго, каб спадзявацца на лагічны выразы для прыняцця рашэнняў для Вас.
Так, напрыклад, скажам, што ў мяне ёсць гэтая праграма,
і я прашу карыстачу ўнесці ўклад у мяне.
Таму я кажу, INT х = Атрымаць Int (), і калі вы не знаёмыя яшчэ,
атрымаць Int з'яўляецца функцыя, таксама ўключаны ў бібліятэцы CS50,
так што калі вы #include CS50.H вы будзеце мець Атрымаць доступ да Int () і ўсе яго
cousins-- GetFloat, GetString, і гэтак далей.
У асноўным адно атрымлівае функцыю для кожнага тып дадзеных, які мы ўжо абмяркоўвалі.
>> Так Int х роўны GetInt.
У асноўным тое, што адбываецца гэта я на тэрмінале.
Я пытаюся карыстачу ўвесці нумар.
>> І вось я пераключэння тое, што я раблю, у залежнасці
на тое, што карыстальнік увёў у камандным радку.
Так што, калі яны ўвялі адзін, я раздрукаваць адно.
І тады я парушу.
Калі яны тыпу два, я раздрукаваць два.
І тады я парушу.
Важна разрыў паміж кожным выпадку
таму што інакш вы праваліцеся.
Так што, калі ў мяне не было якой-небудзь перапынкі там, і карыстальнік
тыпізаваных адным, што здарыцца гэта будзе друкаваць адзін, два, тры, прабачце.
Гэта свайго роду дзіўным паводзінамі, праўда?
Вы маглі б так думаць.
Але на самой справе там некаторых выпадках, калі гэта можа быць даволі карысная рэч.
Дык вось яшчэ адзін прыклад перамыкача Заяву, дзе я апускаю перапынкі.
Але я раблю гэта знарок.
>> Так што тут адбываецца?
Задумайцеся на секунду.
Вы нават можаце прыпыніць відэа.
>> Што адбываецца тут, калі карыстач уводзіць чатыры?
Так што я спытаў у карыстальніка ўвод.
І яны забяспечваюць значэнне 4.
Што друкуецца, калі я гэта зрабіць?
На папярэднім слайдзе, былі перапынкі паміж ўсіх выпадках.
І так бы проста раздрукаваць чатырох, а затым спыніцца.
Але ў дадзеным выпадку, гэта не будзе.
Што здарыцца, вам праваліцца кожным выпадку.
>> Такім чынам, у гэтым выпадку я арганізаваў маіх спраў такім чынам, што калі карыстальнік 4,
Я друкаваць чатыры, тры, два, адзін, ўзлятаць.
І калі яны набралі 5, я хацеў бы пачаць у пяць і рабіць тое ж самае.
Калі яны набралі 1, я б проста зрабіць адзін, ўзлятаць.
>> Такім чынам, у гэтым выпадку, я выкарыстоўваю перамыкач выгляд спрытна так
што я маю намер трапіць праз ўсіх выпадках.
Але ў цэлым вы, верагодна, збіраецца хочам зламаць паміж усімі з іх,
калі ў вас ёсць сітуацыі, як гэты, дзе вы
выгляд выкарыстоўваючы той факт, што вы будзеце праваліцца выпадках без перапынку.
Дык вось другі з найважнейшых Тыпы умоўных аператараў.
Апошні з якіх з'яўляецца: Так што я ёсць два фрагменты кода C тут.
Адзін злева і адзін справа.
Той злева павінны верагодна, будзе даволі знаёмым.
>> У мяне ёсць Int х.
І я, верагодна, варта папрасілі карыстальніка
for-- гэта, верагодна, варта Int х роўная GetInt, ці нешта падобнае.
І тады я прыняцця рашэння.
Калі некаторыя лагічны выраз з'яўляецца праўда, прызначыць х значэнне 5.
У адваротным выпадку, прызначыць х значэнне 6.
>> Гэта злева, верагодна, варта даволі добра знаёмыя з нашай дыскусіі
Калі ў астатняе проста імгненне таму.
Вы былі б здзіўлены ведаць, што лініі справа
робіць тую ж самую рэч?
>> Такім чынам, гэта называецца: часам называецца патройны аператар.
І гэта вельмі выдатна.
Гэта, як правіла, выкарыстоўваецца ў якасці мілы трук.
>> Але тое, што ён дазваляе зрабіць, гэта імітаваць If Else з сапраўды невялікі,
сапраўды трывіяльна кароткі ўмоўныя пераходы.
Вы ўвогуле не выкарыстоўваць: калі вы шэсць радкоў кода паміж кожным наборам
з фігурныя дужкі.
Але калі вы проста што робіць хуткае рашэнне,
калі вы збіраецеся зрабіць адну рэч ці іншай, і гэта вельмі проста,
гэта можа быць прыклад таго, як зрабіць гэта з: патройны аператар.
Так Int х роўны выраз?
Справа пасля пытання знак таго, што Х значэнне
будзе, калі выраз праўдзіва.
>> Справа пасля тоўстай кішкі, што Х значэнне
калі б выраз было ілжывым.
Вось я і пытаюся ў сябе, гэты выраз дакладна?
Калі гэта так, прысвоіць х значэнне 5.
Калі гэта не так, назначце х значэнне 6.
Зноў жа, як я сказаў.
Гэта, як правіла, проста выкрут.
А часам, калі вы сталі сапраўды камфортна з ім,
вы будзеце рабіць гэта, таму што гэта выглядае крута ў вашых праграмах.
Наогул, я ўяўляю яго Вы цяпер так вы знаёмыя з ім
калі вы яго бачыце.
Але, вядома, ведаю, што вы не павінны напісаць яго ў любы з вашага кода.
Але гэта нешта, каб быць знаёмыя з, таму што вы будзеце вызначана сутыкацца
фрагменты кода тут і там, дзе гэта? сінтаксісу,
АКА патройны аператар, выкарыстоўваецца.
>> Так кароткі агляд на тое, што ўмоўныя з'яўляюцца,
і тое, што варыянты Вам у З вас, калі, і калі-інакш,
І калі яшчэ, калі, і гэтак далей.
Вы можаце выкарыстоўваць лагічныя выразы для тых, для прыняцця рашэнняў.
>> З перамыкачом заявы вы карыстаецеся дыскрэтныя выпадкі, каб прымаць рашэнні.
Вы б спецыяльна сказаць, што калі гэта Адзін з іх, або, калі гэта два, або, калі гэта тры,
Я зраблю гэта, або гэтая рэч, ці гэта справа.
І: можа быць выкарыстаны для замены вельмі проста, калі-інакш філіялаў,
або калі-інакш ланцуга, каб зрабіць код выглядаць трохі фантазіі.
>> Я Дуг Лойд.
І гэта CS50.