Всичко е наред. Така че сега нека да поговорим за нещо, наистина полезно в programming-- условни конструкции. Така условни изрази позволите на вашите програми да вземат решения и да вземе различно вилици в пътната, нещо, Аз споменах за малко по-рано, в зависимост от стойностите на променливите, или на базата на това, което потребителят не въведе в програмист, в командния ред, или ако имате бърза или нещо такова. C има няколко различни начина за изразят условни изрази, които ние също ще понякога наричаме условно клон в програмите си. И някои от тях ще разгледаме доста запознат с теб от самото начало, така че ние ще дори и да ги дръпнете един до друг, просто можете да направите тази аналогия в главата ти. Така че, ако if-- е доста просто условно. Ако си спомняте от нулата отдясно тук можете да попълните, че е шестоъгълник със синя изразяване, ако мишката надолу или ако X е по-малко от 10, или нещо такова. И тогава, ако х е по-малко от 10, или ако мишката е в действителност, надолу, целият код вътрешността на пъзел парче ще се изпълни. Всички неща, които се вписват вътре, че C форма. По същия начин, имаме ли ако в ляво има. Ако Булев израз, които аз съм само с помощта като заместител на едно от Boolean изрази, които обсъдихме по-рано, отворена фигурна скоба, близо фигурна скоба. Така че мисля, че на открито къдрава презрамки и затворена фигурна скоба като вид, аналогичен на сандвича ефект на блок, ако отдясно от нулата. Ако Булев израз в отчета, ако е вярно, след това всички линии на код между фигурните скоби ще се изпълни, за от горе до долу. Ако Булев израз е невярна, ние ще прескочим всичко между тях фигурните скоби, защото ние само Искам да сляза, че разклонение на пътя ако Булев израз е вярно. Ние можем да използваме тази една стъпка допълнително, ако друго. Така че това е Scratch блок доста подобна на видяхме само преди секунди, с изключение на това отнема две различни пътеки, основаващи върху това, което се случва. Така че, ако мишката е намалял, или ако X е по-малко от 10, ние ще направим всичко, което е по средата че първата вилица, че първата C., В противен случай, ако мишката е нагоре, или х е не по-малко от 10, ние ще направим всичко във втория сет. И това е аналогично на това, което виждате тук за C. Ако Булев израз, направя нещата между изходното Първият набор от фигурни скоби. Else, направете нещата между изходното Вторият комплект от фигурни скоби. Така че, ако Boolean изразяване е вярно, ние ще направи каквото е между първия сет. Ако Булев израз е невярно, че ще задейства друго, и ние ще направим каквото и в вторият набор от фигурни скоби. Отново горе до долу, всичко, линии в между скобите. В C, това е възможно да се създаде един, ако-иначе, ако веригата-друго. В действителност може да има, ако-иначе, ако-иначе ако иначе, ако, и така нататък, и така нататък и така на. В Scratch, това изисква гнездене на блоковете. Вие добавяте ако-иначе, и ти трябваше да Казано по друг един вътре в друго, и така нататък, и да го имам вид на вложените и сложно. Но C, ние не трябва да го направя. Ние всъщност може просто да тя да бъде като тази верига. Отново, както може да се очаква, всички тези отрасли са взаимно изключващи се. Можете да отидете само всякога определяне на един от бранша. Ако това е вярно. В противен случай, ако това е вярно. В противен случай, ако това е вярно. В противен случай, да направите това. Така че всички четири от клоновете в тази Например са взаимно изключващи се. Това е, ако-иначе, ако веригата-друго. Възможно е обаче, а понякога и много полезно, да се създаде верига на не взаимно изключващи клонове. В този пример, само третото и четвърто клонове са взаимно изключващи се. Тя може да бъде, че бихте могли да отговарят на първото условие, и вие може да задоволи второто условие, и може да задоволи Третият condition-- в който случай бихте слизат на първата част, тогава слизат втори клон, тогава ще слезем на третата част. Или може би ви задоволи първата състояние, и второ състояние, но вие не отговарят третото условие. В този случай трябва да се понижат първият клон и втората част, и след четвъртия клон, Причината за това е, че друго ще се свърже само с точност дали. Така че, въпреки че има на друго тук, че не е задължително да се създаде взаимно изключителната верига от всичко. Това е само израз там с Булева изразяване 3-- това е взаимно изключващи се с друг. Така че е възможно, и понякога е доста полезно, както казах, за да се създаде верига от не изключват взаимно клонове. Нека да разгледаме най-различен вид условна, които не сте виждали преди в Scratch. Има нещо, наречено отчета за преминаване. Отчетът за превключване е чист вид, защото това е условен израз, който позволява можете да зададете отделни случаи, вместо да разчита на Булева изрази, за да вземат решения за вас. Така например, да речем че имам тази програма, и аз питам потребителя да даде своя принос за мен. Затова казвам, инт х = Get Int (), и ако все още не сте запознати, получите инт е функция, която е Също така са включени в библиотеката CS50, така че ако #include CS50.H ще трябва достъп до Get Int () и цялото му cousins-- GetFloat, GetString, и така нататък. По принцип една Вземи функция за всеки тип данни, който вече сме обсъдени. Така Int х равнява GetInt. Основно това, което се случва е, че съм в терминала. Питам на потребителя да въведете в редица. И тук аз съм превключване какво правя, в зависимост върху това, което потребителят въведе в командния ред. Така че, ако те написали една, аз отпечатвате една. И тогава аз се счупят. Ако те написали две, I отпечатате две. И тогава аз се счупят. Важно е да се пробие между всеки случай защото в противен случай ще падне сам. Така че, ако не разполагат с никакви почивки там, и потребителят напечатан един, какво би станало, това е ще отпечата един, два, три, съжалявам. Това е вид странно поведение, нали? Може би си мислите така. Но всъщност има някои случаи, когато това може да е доста полезно нещо. Така че тук е още един пример за преминаване Декларация където аз пропуснете почивките. Но аз го правя нарочно. Така че това, което се случва тук? Помислете за секунда. Може дори да искате да направите пауза във видеото. Какво се случва тук, ако типовете потребителски четири? Така че аз съм попита потребителя за вход. И те предоставят на стойност 4. Какво получава печатни когато го правя? На предишния слайд, имаше паузи между всички случаи. И така би просто отпечатате четири и след това да спре. Но в този случай, това няма да стане. Какво ще се случи ли е ще падне през всеки отделен случай. Така че в този случай аз съм организирана моите случаи по такъв начин, че ако потребителят 4, Аз ще отпечата четири, три, две, едно, излитам. И ако те написали 5, бих започнете в пет и да направи същото нещо. Ако те написали 1, бих Просто направете едно, излитам. Така че в този случай, аз съм с помощта превключвател вид хитро така че аз нямам намерение да падат през всички случаи. Но като цяло най-вероятно ти ще искате да се прекъсне между всички тях, освен ако имате ситуация като този, когато сте вид деблокирането на факта, че вие ​​ще падне чрез случаите без прекъсване. Така че това е вторият от майора видове условни конструкции. Последната от които е:? Така че аз има две откъси от C код тук. Една от ляво и една от дясно. Онзи, в ляво трябва Вероятно е доста запознат с теб. Имам Int х. И аз може би трябва да са поискали от потребителя for-- това вероятно трябва да бъде Int х равнява GetInt, или нещо подобно. И тогава аз съм вземане на решение. Ако някои Булев израз е Вярно, присвоява х стойността 5. В противен случай, присвоява х стойността 6. Това в ляво може би трябва да бъде доста познати от нашата дискусия Ако на Else само преди миг. Бихте ли се изненадате да знаете че линията отдясно прави точно същото нещо? Така че това се нарича:? Или понякога наречен третичния оператор. И това е много готино. Това обикновено се използва като един сладък трик. Но това, което ви позволява да направите, е да симулира Ако Else с много малък, наистина банално кратко условни клонове. Вие като цяло няма да използва: ако имаше шест реда код между всяка серия на фигурни скоби. Но ако сте просто вземане на бързо решение, ако ти започваш да се направи едно нещо, или другата и това е много проста, това може да бъде пример за това как да го направя с:? третичния оператор. Така Int х е равно на изразяване? Нещото, след въпрос марка е това, което х имат стойност ще бъде, ако словото е вярно. Нещото, след като на дебелото черво е каква стойност Х би било, ако изразът е невярна. Така че аз съм се питам, е вярно израз? Ако е така, присвоява х стойността 5. Ако не е, да възложат х стойността 6. Отново, както казах. Това обикновено е само един сладък трик. И понякога, ако станете наистина удобно с него, вие ще направите това, защото изглежда някак страхотно в своите програми. Като цяло аз съм го представи пред вие сега така че сте запознат с нея ако го виждате. Но със сигурност знам, че не е нужно да го напиша в някоя от кода си. Но това е нещо, за да бъдат запознати с, защото вие със сигурност ще се сблъскате откъси от код тук и там, където това:? синтаксис, AKA третичния оператор, се използва. Така бързо обобщение на какви са условни, и какви са наличните опции при вас в C. Трябва Ако и ако-иначе, и ако друго, ако и така нататък. Можете да използвате булеви изрази за тези, които да се вземат решения. С ключ изявления използвате дискретни случаи да вземат решения. Ще кажа по-специално, ако това е една, или ако това е две, или ако това е три, Ще направя това нещо, или това нещо, или това нещо. И: може да се използва за заместване много прости, ако-друг клони, или ако-друг вериги да правят кода си изглежда малко фантазия. Аз съм Дъг Лойд. И това е CS50.