[За възпроизвеждане на музика] Дъг LLOYD: Hi, така че нека говорим за операторите в C. Така че, вече сме виждали, в действителност, се равнява на оператора на задача. Това ни позволява да съм сложил стойност в променлива. Това е задачата оператор, единен знак за равенство. С цел да се манипулира и работа с ценности и променливи в C, имаме редица оператори на наше разположение, които можем да използваме. Нека да разгледаме най- някои от често срещаните като се започне с аритметични оператори. Както може би очаквате, което можем да направим доста основни операции по математика в C. Ние можем да събира, изважда, множете се, разделение номера, използващи плюс, минус, звезда, и наклонена черта, съответно. Ето няколко линии на код, в който ние го направя. Така че, ние имаме инт х е равно на у плюс 1. Да предположим, че някъде до над този ред код бяхме казали инт у равнява на 10. Каква е стойността на х, след I изпълните тази първа линия на код? Каза ли 11? Човек би си прав. Защо така? Е, у е 10. Някои Казвам инт х е равно на 10 плюс 1. 10 плюс 1 е 11. Така че, на стойност 11 получава съхранява в променливата х. Не е толкова зле, нали? Какво ще кажете за тази следваща линия на код? х е равно на х пъти 5. Е, преди да сме изпълнени този ред код, х е 11. Така че, това, което е стойността на х след този ред на код? Вземете една секунда. Така че, х е равно на х пъти 5. х е 11. Така че, х е равно на 11 пъти 5. Или 55. Така че, ако ти каза 55, ще бъдеш прав. Сега, може да е малко объркващо, но с начина, по който работи в присвояване C е стойността на правото получава възлага на стойност от ляво. Така че, на първо място ние оценяваме х пъти 5. Така че, 11 пъти 5 е 55. И тогава ние съхраняваме тази стойност в х. 11-, че е бил там преди сега се презаписва. Така стойност х В този момент от 55 е. Надяваме се, че това е сравнително лесно. Има и друг оператор, който сте Вероятно не е задължително да изслушва нарича това, но вие сте със сигурност е работил в миналото ако си спомняте дните си на дълга разделение връщане в началното училище. Тя се нарича оператор модул. Какво прави модул е дава остатъка когато се разделят на две числа заедно. Така че, ако кажа, 13, разделено на 4, каква е останалата част? И когато тази стойност се изчислява, от оператора на модул. Така че, аз имам един ред код Оттук инт m е равно на 13 мод 4. И аз казвам тук в коментар стойност, която m сега е 1. Защо казвам това? Ами, направете дълга разделението във Вашия главата, ако носят с мен за секунда. Така че, аз съм 4, разделена на 13. 4 преминава в три пъти 13 и остатък 1. Така че, общо взето, всички модул оператор прави е то вас, когато ви казва разделение, можете да получите остатъка. Може би си мислите, че това е всъщност Не е страшно полезно нещо, но вие ще бъдете изненадани, всъщност, от това, колко често, че модул Операторът може да дойде по-удобно. Има няколко проблема ние ще направим CS50, че се справят с него. То също е добра за правене неща като случайни числа. Така, например, ако някога сте чували за генератор на случайни числа, това ще ви даде номер от 0 до някои огромен брой. Но може би само наистина нужда от редица от 0 до 20. Ако използвате оператора на модул на тази гигантска номер, който се генерира от генератор на случайни числа, започваш да се вземе каквото и огромна стойност и да е, разделете го с 20, и получи остатъка. Останалата може само е стойност 0-19. Така че, можете да използвате модул оператор да вземе този огромен брой и омаловажавам го надолу в нещо, малко по-смислено. Аз съм сигурен, че ще бъде можете да използвате и двете от тези, в някакъв момент в бъдеще в CS50. Така че, C също ни дава начин да прилагат аритметични оператор на една променлива в малко по-стенографски начин. Така че, в предишния слайд, видяхме х е равно на х пъти 5. Това е работил. 5 х пъти след това получава съхраняват обратно в х. Има един по-кратък начин да го направя, мисъл, и това е времето на синтаксиса Х означава 5. Това е точно същата като нещо казвайки х е равно на х пъти 5. Това е просто леко по-кратък начин да го направя. И когато видите някои дистрибуция код или сте виж примерен код, който прави нещата по този начин, Просто да е запознат с какво означава синтаксиса. Вие със сигурност не е нужно да го използвам, но ако го направите, той може да направи своя код изглежда малко хитрец. И знам, че можете да използвате всеки от различните оператори, които вече сме виждали преди, вместо пъти. Може да се каже х плюс равнява 5, минус се равнява на 5, пъти, разделяй и Министерството на отбраната. Всички те работят. Освен това има и нещо това е толкова често в C че ние решихме да прецизира, че дори по-далеч. Увеличаването на променлива от 1 или намаляващи променлива от 1 е такава обща особено thing-- когато говорим за контури малко по-късно on-- че решихме вместо казвайки нещо като х плюс е равно на 1, или х е равно на х плюс 1, ние сме дори Накратко предадена, че да х плюс плюс. Така че, х е равно на х плюс 1, х плюс е равно на 1, и х плюс плюс всички правим едно и също нещо. Те всички нарастване с 1 х. Но това увеличаване и намаляващи от 1 е толкова често, че имаме плюс плюс и минус минус които ни позволяват да стенограмите че още по-далеч. Така че, нека да сменя предавките за второ и да поговорим за булеви изрази. Всички, които са също вид попаднат в цялостната категорията оператори. Но булеви изрази, за разлика от аритметични оператори, се използват за сравняване на стойностите. Така че, отново, всички булеви изрази в C оценка на една от две възможни стойности, отзоваване. Истина или лъжа. Това е само две стойности, които Булева променлива може да поеме. Ние можем да използваме резултатите на Булев израз в много отношения по програмиране. Всъщност, вие ще бъдете прави това доста. Например, ние може да реши, добре, ако определени условия са изпълнени, може би аз ще се възползвам от тази клон надолу моя код. A условно, така да се каже. Ще научите повече за тези, които скоро също. Или може би, най-дълго това е вярно, аз искам да продължаваш да правиш това отново и отново и отново. A линия. И в двата случая, знаете, че ние използваме булев израз, а вярно или невярно, да реши дали или не да вземе специално път. Понякога, когато ние работим с булеви изрази, ние ще използваме променливи от тип булев. Може да са декларирали а BOOL написали променлива, и вие ще използвате във вашия Булев израз. Но не винаги трябва да направите. Както се оказва, в C, всеки не-0 стойност е същата като казваше вярно. Ако беше обявен за променлива от тип Boolean, и го дава стойността вярно, това е същите като обявяване цяло число и присвояване на стойността 1, 2, 3, или наистина някаква стойност каквато различна от 0. Защото в C, всяка-0 без стойност не е вярно. 0, от друга страна, е фалшива. Това може да дойде по- удобно по-късно, за да знаете, но просто нещо да се има предвид. Ние не винаги е нужно да използвате Булеви променливи тип, когато ние Работим с булеви изрази. Има два основни вида Булева изрази, които ще се работи. Логическите оператори и релационни оператори. Езикът има не е ужасно важно. Това е наистина колко съм групирането им. И ще със сигурност, мисля, най-бързо осъзнават какво релационна оператор е, въз основа на това, което те са, когато ние говорим за тях в секунда. Но не се притеснявайте за задължително запаметяването на термина логично оператора или релационна оператор. Аз съм просто да го използвате, за да група тях по логичен начин. Така че, нека да разгледаме най- трите логически оператори че ще видим доста битов в програмирането в CS50 и в програмирането по-общо. Логическо И е вярно, ако и само ако и двата операнда са верни. В противен случай фалшива. Къде означава това? Така че, нека да кажа, че съм по- насочи в моя код, където имам две променливи, х и у. И аз искам да реши дали да се направи нещо в моя код въз основа на, ако х е вярно и у е вярно. Аз само искам да го направя, ако и двете от тях са верни, иначе аз не искам да сляза, че пътека, защото това няма да ми помогне. Какво мога да кажа е, ако х & & ш. Това ще бъде логически булева изразяване сравняване х и у и приемането на определена пътека въз основа на това, което им стойности са. Така че, ако х е вярно и у е вярно въз основа на тази истина маса тук, само тогава ще слезем по този път. Ако х, & & ш. Той е само на true-- и е само вярно, ако х е вярно и у е вярно. Ако единият е невярна, както виждаме таблицата на истината, тогава х, така и у не са верни. И така, х & & у е фалшива. Logical OR е вярно, ако и само ако поне един операнд е вярно. В противен случай фалшива. Така логично И изисква както х и у за да е истина. Logical OR изисква х за да е истина, или у за да е истина, или х, така и у да е истина. Така че, отново, ние вид намерите себе си в ситуация, къде отиваме в нашия код, и стигнахме до разклонение на пътя. И ние искаме да слизат специално пътека, ако х е вярно или у е вярно, но не задължително, ако и двете са верни. Но вероятно, ако и двете са верни. Така че, ако х е вярно и у е Вярно, ние ще отидем по този път. х е вярно. Един от тях е вярно, нали? Ако х е вярно и у е вярно. Ако х е вярно, и у е невярна, един от тях все още е вярно. Така че, х или у е все още вярно. Ако х е фалшива, и у е вярно, един от тях все още е вярно, нали? у е вярно, в този случай. Така че, това е вярно, че х или у е вярно. Само ако х е фалшива и у е фалшива не слизаме по този път, защото нито х нито у е вярно. Сега, ако търсите в екрана точно сега и се чудех какво, че символ е за логическо OR, тя се нарича вертикална лента. И ако погледнете в клавиатурата за минута, както правя сега, това е обикновено точно над Въведете ключ, на повечето клавиатури, на същия клавиш като наклонената черта. То също е обикновено полето до квадратните скоби. Така че, може да е ключ, който ви Не сте написали много в миналото. Но, ако сте някога правим логически сравнения, тъй като ние ще се прави по- много в течение, че е ще бъде полезно да се откриете, че ключ и го използват. Така че, това е обикновено на същия клавиш като наклонена черта точно над Enter. Крайният логично операторът не е така. И НЕ е доста ясен. Той обръща стойността на операнда. Ако х е вярно, тогава не х е фалшива. Ако х е фалшива, а след това не е вярно, х. Понякога вие ще чуете този символ произнася като взрив или удивителен или не. Това е почти всичко, на едно и също нещо. В случай, че чувам, че и говоримо не сте сигурни какво означава това, това е просто възгласа точка, но понякога е по- наречена няколко различни неща. Добре, така че отнема грижа на логически оператори. Така че, нека да поговорим за релационни оператори. Отново, ако сте запознати с тази аритметична обратно в началното училище, вие вероятно сте запознат с това как те работят вече. Те се държи точно така, както бихте очаквали. Така че по-малко от това е вярно, в това Например, ако х е по-малко от Y. Така че, ако х е 4, а у е 6, х е по-малко от Y. Вярно е. По-малко от или равно на работи доста по подобен начин. Ако X е 4, и Y е 4, тогава х е по-малка или равна на у. По-велик от. х е по-голяма от у. И по-голяма или равна на х е по-голяма или равна на у. Ако това е вярно, тогава ще мине този израз, и ще сляза този път на пътя. Ако имате за въвеждане, ако х е по-голяма, отколкото у, и X е, в действителност, е по-голяма от Y, ще направя каквото е подчинено на това състояние. Забележете, че ние не разполагаме с единичен знак за по-малко от или равна на, както може да бъде запознат с математика от учебниците. Така че, ние имаме по-малко, отколкото символ, последвано от знак за равенство. Ето как ние представляваме по-малко от или равно на. И по същия начин, ще правим, че за по-голямо от или равно на. Крайният две релационни оператори, които са важни тестване за равенство и неравенство. Така че, ако х е равно равнява у, е вярно ако х и у е стойност е същата. Ако х е 10, и у е 10, тогава х е равно равнява у е вярно. Ако X е 10 и у е 11 х равнява се равнява на годишна не е вярно. Можем също така да се тества за неравенството, използвайки удивителен знак или взрив или не, отново. Ако X не е равна на у, ако това е тестът ние използваме тук, щяхме да сме добре да тръгвам. Така че, ако X не е равно на у, ние ще отидем по този път. Бъдете внимателни, наистина тук. Това е наистина обща и mistake-- една аз със сигурност направи доста, когато Аз получавах started-- случайно да сбърка оператор за присвояване, с равно, за оператора на сравнение между половете, двойни равни. Това ще доведе до някаква странна поведение в кода си, и обикновено компилаторът ще да ви предупредя за това, когато се опитате и събират кода си, но понякога може да сте в състояние да го крия от. Това не е непременно нещо добро че сте го дебна от, все пак. Точно така, ако сте прави тест за неравенството, ако сте се провери дали двама различни променливи имат същата стойност вътре в тях, се уверете, че да се използва се равнява на равни, а не с равно. И по този начин вашата програма ще имат поведението възнамерявате. Аз съм Дъг Lloyd и това е CS50.