Во ред.
Па сега ајде да зборуваме за нешто навистина корисно во programming--
условно извештаи.
Па условно изрази им овозможи на вашите програми
да донесуваат одлуки и да имаат различни вилушки во патот, нешто
Јас алудираше малку порано, во зависност од вредностите на променливите,
или врз основа на она што корисникот влезови програмерот, на командната линија,
или ако имате брз или нешто слично.
Ц има неколку различни начини да се изразат условен изрази, кои
ние, исто така, понекогаш ќе се јавите на условен филијала во вашите програми.
И некои од овие се случува да се погледне прилично запознаен со вас од нула,
па дури и ќе ги повлече до рамо до рамо, само
можете да направите таа аналогија во вашата глава.
>> Значи, ако if-- е прилично едноставна условно.
Ако се сеќавате од гребнатина на десниот тука
можете да се пополни во која е шестоаголник со сина израз ако глувчето надолу
или ако x е помалку од 10, или нешто слично.
А потоа, ако x е помал од 10, или ако на глувчето е во фактот, долу,
сите на код во внатрешноста на загатка парче ќе се изврши.
Сите оние нешта кои се вклопуваат внатре во кои С форма.
>> Слично на тоа, дали имаме ако на левата таму.
Ако Булова израз, што јас сум само користење
како замена за еден од Булова изрази зборувавме претходно,
отворен кадрава голема заграда, во близина кадрава голема заграда.
Значи мислам на отворен кадрава подготвуваат и затворени кадрава голема заграда
како вид на аналогни на сендвичот Ефектот на ако блок на десната
од нула.
>> Ако Булова израз во изјавата ако е точно,
тогаш сите линии на код помеѓу големи загради
ќе се изврши со цел од врвот до дното.
Ако Булова израз е лажна, ние ќе
прескокнете над што ќе се памети на големи загради, бидејќи ние само
сакаат да одат надолу по вилушка на патот ако Булова израз е точен.
>> Можеме да ги преземе овој чекор ако понатаму со друго.
Па овој блок е нула прилично слична на онаа
видовме пред само една секунда, освен носи две различни патеки базирана
на она што се случува.
Значи, ако на глувчето е долу, или ако x е помал од 10,
ние ќе направиме се што е во меѓу тој прв вилушка, тој прв В,
>> Инаку, ако на глувчето е горе, или x не е помала од 10,
ние ќе направиме се што е во вториот сет.
И тоа е аналогно на она што го гледате тука за C. Ако Булова израз,
направи нешто помеѓу првиот сет на големите загради.
Друго, правете нешто помеѓу Втората група на големите загради.
Па ако на Булова изразување е точно, ние ќе
стори се што е помеѓу првиот сет.
Ако Булова израз е лажна, дека би било причина за друго,
а ние ќе стори се што е во вториот сет на големите загради.
Повторно, врвот до дното, сите линии во меѓу загради.
>> Во C, можно е да се создаде ако еден-друг-синџир, ако друго.
Всушност може да имаат, ако-друго ако-друго Ако-друго, ако, и така натаму и така натаму и така
на.
Во Скреч, ова се бара вгнездени блокови.
Ќе додадете-ако друго, и ти мораше да стави уште еден во внатрешноста на друго место,
и така натаму, и се тоа вид на вгнездените и комплицирани.
Но, Ц, ние не треба да го направат тоа.
Ние всушност може само да тоа да биде еден синџир се допаѓа ова.
Повторно, како што може да се очекува, на сите овие гранки се исклучуваат.
Можете само да некогаш одат надолу една од гранка.
Ако ова е точно.
Во спротивно, ако ова е вистина.
Во спротивно, го направите тоа.
Значи сите четири гранки во оваа пример меѓусебно се исклучуваат.
Тоа е, ако, на друго место ако синџирот-друго.
>> Тоа е можно, иако, а понекогаш и многу корисни,
за да се создаде еден синџир на не меѓусебно се исклучуваат гранки.
Во овој пример, само третиот и Четвртиот гранки меѓусебно се исклучуваат.
Тоа би можело да биде дека сте можеле задоволи првиот услов,
и да ја задоволите на вториот услов,
и може да ги задоволи Третата condition-- во кој случај
ќе се памети првата гранка, тогаш може да оди надолу по втор гранка,
тогаш ќе одат надолу третата гранка.
Или можеби ви ги задоволи првиот состојба, а вториот услов,
но не ги задоволуваат третиот услов.
Во овој случај ќе се памети првата гранка и второ колено,
а потоа на четвртата гранка,
>> Причината за ова е тоа што на друго место ќе се поврзе само со точност ако.
Па иако таму еден друг тука, дека
не мора да се создаде заеднички ексклузивни синџирот на сè.
Тоа е само израз таму со Булова
изразување 3-- тоа е исклучуваат меѓусебно со друг.
Така што е можно, и понекогаш и доста корисно,
како што реков, за да се создаде еден синџир на не се исклучуваат меѓусебно гранки.
Ајде да ги разгледаме во различен вид на условна, која
не сте го виделе досега во нула.
Има нешто што се нарекува изјава на прекинувачот.
Билансот на прекинувачот е вид на уредни, бидејќи тоа е
условни изјави, која им овозможува можете да наведете различни случаи,
наместо да се потпира на Булова изрази, да донесуваат одлуки за вас.
Така на пример, да речеме дека имам оваа програма,
и јас барам на корисникот да дадат свој придонес за мене.
Значи јас велам, int x = Земете Int (), и ако се уште не сте запознаени,
добијат int е функција која е исто така се вклучени во библиотеката CS50,
па ако # Include cs50.h ќе имате Добие пристап до Int () и сите негови
cousins-- GetFloat, GetString, и така натаму.
Во основа една добие функцијата за секој тип на податок дека ние веќе разговаравме.
>> Па int x е еднаква GetInt.
Во суштина она што се случува е јас сум на терминалот.
Прашувам на корисникот да напишеш во голем број.
>> И тука јас сум префрлување она што го правам, во зависност
на она што на корисникот внесе во конзолата.
Значи, ако тие ја внеле, мене испечатите еден.
И тогаш јас се скрши.
Ако тие тип два, јас печати од двете.
И тогаш јас се скрши.
Важно е да се пауза помеѓу секој случај
затоа што во спротивно ќе падне преку.
Значи, ако јас не се имате било какви паузи таму, а на корисникот
исчука еден, што ќе се случи тоа е ќе се печати една, две, три, жалам.
Тоа е вид на чудно однесување, нели?
Можеби мислат така.
Но, таму се всушност некои случаи каде ова би можело да биде доста корисна работа.
Значи тука е уште еден пример на прекинувачот изјава каде што јас ја изостави на паузите.
Но, јас го направи тоа намерно.
>> Значи она што се случува овде?
Мислам за една секунда.
Можете дури и да сакате да го паузирате видео.
>> Што се случува овде, ако корисникот видови четири?
Па јас питах на корисникот за влез.
И тие се обезбеди на вредноста 4.
Она што добива се печатат кога го направам тоа?
На претходниот слајд, имаше паузите помеѓу сите случаи.
И според тоа би само печати четири, а потоа запре.
Но, во овој случај, тоа нема.
Што ќе се случи да ви е ќе падне преку секој случај.
>> Значи во овој случај јас сум организирана мојата случаи во таков начин што, ако на корисникот видови 4,
Јас ќе се печати четири, три, два, еден, излитам.
И ако тие внеле 5, јас ќе започне на пет и го прават истото.
Ако тие ја внеле 1, јас би само да се направи еден, експлозијата надвор.
>> Значи во овој случај, јас сум со користење прекинувач вид на умно така
дека јас немам намера да падне низ сите случаи.
Но, генерално, што веројатно ќе отидеме сакаат да се пробие меѓу сите нив,
освен ако имате ситуација како овој, каде што сте
вид на клиент преку фактот дека ќе пропаднете случаите без пауза.
Значи тоа е втората од главните типови на условно извештаи.
Од кои последниот е: Па јас имаат два фрагменти на C код овде.
Една на левата и на десната страна.
Оној на левата страна треба веројатно да биде прилично запознаени за вас.
>> Имам int x.
И јас веројатно ќе треба побараа од корисникот
for-- тоа веројатно треба да биде int x еднаква GetInt, или нешто слично.
И тогаш јас сум да донесат одлука.
Ако некои Булова израз е точно, му ја додели х вредноста 5.
Инаку, доделите х вредноста 6.
>> Дека на левата веројатно треба да биде прилично познат од нашата дискусија
Ако на друго место пред само еден миг.
Дали ќе бидете изненадени да знаете дека линијата надесно
прави иста работа?
>> Значи ова се вика: а понекогаш наречен троичен оператор.
И тоа е прилично кул.
Тоа е обично се користи како симпатична трик.
>> Но, она што ви овозможува да направите е да се симулираат Ако друг со навистина мали,
навистина тривијално кратко условен гранки.
Обично не би се користи: ако имаше шест линии на код помеѓу секој сет
на големите загради.
Но ако сте само правење на брзи одлуки,
ако си оди за да се направи една работа или на друг и тоа е многу едноставна,
ова може да биде пример за тоа како да се направете го тоа со: на трикомпонентните оператор.
Па int x е еднаква на изразување?
Работата по прашањето марка е она Х вредност
ќе биде ако изразувањето е вистина.
>> Она по дебелото црево е она што вредноста на X
ќе биде ако на изразување е неточно.
Па јас се прашувам, Точно е израз?
Ако е така, додели х вредноста 5.
Ако тоа не е, додели х вредноста 6.
Повторно, како што реков.
Ова е обично само една симпатична трик.
А понекогаш и ако станете навистина удобно со него,
ќе го направите ова, бидејќи изгледа вид на ладно во вашите програми.
Обично јас сум го презентираат ви, па сега сте запознаени со тоа
ако ти го гледаш.
Но, сигурно знаат немате да го пишувам за некој од вашиот код.
Но тоа е нешто што треба да биде запознаен со тоа, бидејќи вие дефинитивно ќе се судрите
снипети на кодот тука и таму каде што тоа: синтакса,
АКА на трикомпонентните оператор, се користи.
>> Така брз преглед на conditionals она што се,
и она што се достапни опции да сте во В. имате ако и доколку-друго,
и ако е друго, ако, и така натаму.
Можете да го користите Булова изрази за тие да донесуваат одлуки.
>> Со прекинувач изјавите користите дискретна случаи да донесуваат одлуки.
Сакаш да се каже конкретно, ако тоа е еден, или ако тоа е два, или ако тоа е три,
Јас ќе го направи тоа нешто, или тоа нешто, или тоа нешто.
И: може да се користи да се замени многу едноставна, ако-друго гранки,
или ако-друго синџири за да се направи Вашиот код погледне малку фенси.
>> Јас сум Даг Лојд.
И ова е CS50.