>> [MUSIC JOC]
>> DOUG LLOYD: Salut, Să vorbim despre operatorii din C.
Deci, am văzut deja unul, de fapt, este egal cu operatorul de atribuire.
Acesta ne permite să pună doar o valoare într-o variabilă.
Asta e atribuirea Operatorul, semnul egal singur.
În scopul de a manipula și de muncă cu valori și variabile în C,
avem un număr de operatori la dispoziția noastră pe care o putem folosi.
Să aruncăm o privire la unele dintre cele comune
începând cu operatori aritmetici.
După cum s-ar putea aștepta, putem face operații matematice de bază destul de în C.
Putem adăuga, scădea, înmulți, și Numerele împartă folosind plus, minus, stele,
and slash, respectiv.
Iată o pereche de linii de cod în care facem asta.
Deci, ne-am int x este egal cu y plus 1.
Să presupunem că undeva deasupra acestei linii de cod
am spus int y este egal cu 10.
Care este valoarea lui x după ce am executa această primă linie de cod?
Ai spus 11?
Te-ai dreptate.
De ce este asta?
Ei bine, y a fost de 10.
Unele Int Spun x este egal cu 10 plus 1.
10 plus 1 este de 11.
Deci, valoarea 11 devine stocate în variabila x.
Nu prea rău, nu?
>> Ce zici de asta următoarea linie de cod? x este egal cu x ori 5.
Ei bine, înainte de a ne executat această linie de cod, X a fost de 11.
Deci, ceea ce este valoarea de X după această linie de cod?
Ia-o a doua.
Deci, x este egal cu x ori 5.
X a fost de 11.
Deci, x este egal cu de 11 ori 5.
Sau 55.
Deci, dacă ai spus 55, ai avea dreptate.
>> Acum, acesta poate fi un pic confuz, dar cu modul în care lucrează în C cesiune
este valoarea pe dreapta devine atribuită valoarea din stânga.
Deci, în primul rând vom evalua x ori 5.
Deci, de 11 ori 5 este de 55.
Și apoi ne-am păstra ca valoare în X.
Cele 11 care a fost acolo înainte de acum suprascris.
Deci, valoarea X este acum de 55.
Sperăm că asta e destul de simplu.
>> Există un alt operator care le-ați probabil, nu neapărat a auzit
numit acest lucru, dar le-ați siguranță a lucrat în trecut
dacă vă amintiți zilele de lung diviziune cale de întoarcere în școala primară.
Se numește operatorul modul.
Ce face modul este vă oferă restul
atunci când împărți două numere împreună.
Deci, dacă eu spun 13 împărțit la 4, care e restul?
Și ca valoarea ar fi calculată de către operator modulului.
>> Deci, am o linie de cod aici, Int m este egal cu 13 mod 4.
Și spun aici într-un comentariu valoare care m este acum un.
De ce spun asta?
Ei bine, nu divizia lung în ta cap, dacă poarte cu mine pentru o secundă.
Deci, am 4 împărțit la 13.
4 merge în 13 de trei ori cu un rest de 1.
Deci, practic, toată Operatorul modul face
este atunci când spune tu divide, veți obține restul.
Ai putea crede că de fapt nu este un lucru teribil de util,
dar vei fi surprins, de fapt, de cât de frecvent ca modul
Operatorul poate veni la îndemână.
>> Există o serie de probleme vom face CS50 care face cu ea.
Este, de asemenea, bine pentru a face lucruri cum ar fi numere aleatoare.
Deci, de exemplu, dacă ați vreodată auzit de un generator de numere aleatorii,
care este de gând să vă dau un număr de la 0 la un numar foarte mare.
Dar poate tu doar într-adevăr nevoie de un număr de la 0 pentru a 20.
Dacă utilizați operatorul modul pe acest număr uriaș care
se generate de generator de numere aleatorii,
ai de gând să ia orice Valoarea imens este, împărți cu 20,
și pentru a obține restul.
Restul poate doar fie o valoare 0-19.
Deci, să utilizați operatorul modul să profite de această număr foarte mare
și Whittle-l în ceva un pic mai semnificativ.
Sunt destul de sigur că vei capabil să se utilizeze atât a celor
la un moment dat în viitor, în CS50.
>> Deci, de asemenea, C ne oferă o modalitate să aplice o aritmetică
Operatorul la o singură variabilă într-un mod ceva mai stenografie.
Deci, în diapozitivul anterior, am văzut x este egal cu x ori 5.
Care a funcționat.
x ori 5 apoi este stocat din nou în X.
Există o modalitate de scurtă să o facă, gândire, și este sintaxa x ori egal cu 5.
Este exact același lucru ca și spune x este egal cu x ori 5.
E doar o ușoară modalitate mai scurtă a face acest lucru.
Iar atunci când vezi ceva Codul de distribuție sau
vedea unele mostre de cod care face lucruri de genul asta,
doar să fie familiarizat cu ce înseamnă sintaxa.
Tu cu siguranță nu au să-l folosească, dar dacă ai face,
s-ar putea face codul uite un pic impermeabil.
Și să știți că puteți utiliza, de asemenea, la oricare dintre diferiților operatori ne-am deja
văzut înainte în loc de ori.
Ai putea spune x plus este egal cu 5, minus este egal cu 5, ori, divide, și mod.
Toți cei muncă.
>> Există, de asemenea, ceva care este atât de comună în C
că ne-am hotărât să rafina că chiar mai departe.
Incrementarea unei variabile de 1 sau decrementare o variabilă de 1
este un astfel de thing-- comun special atunci când vorbim despre buclele un pic mai târziu
on-- că am decis în loc de spune ceva de genul x plus este egal cu 1,
sau x este egal cu x plus 1, am chiar scurt predat că pentru a x plus plus.
Deci, x este egal cu x plus 1, x plus este egal cu 1, și X, plus, plus toate fac același lucru.
Acestea toate increment x cu 1.
Dar că incrementarea și decrementare de 1
este atât de comună că avem plus și minus minus plus
care ne permit să stenografia că chiar mai departe.
>> Deci, haideți să comutator unelte pentru a doua și vorbesc despre expresii booleene.
Toate care sunt, de asemenea, un fel de se încadrează în categoria generală a operatorilor.
Dar expresii booleene, spre deosebire de operatorii aritmetici,
sunt utilizate pentru compararea valorilor.
Deci, din nou, toate expresiile booleene din C evalua la unul dintre cele două valori posibile,
amintesc.
Adevarat sau fals.
Asta e doar două valori care Variabilă boolean poate lua.
Putem folosi rezultatele de o expresie booleană
într-o mulțime de moduri în programare.
De fapt, vei putea face acest lucru destul de mult.
>> De exemplu, am putea decide, Ei bine, în cazul în care unele condiție este adevărată,
poate că voi lua acest ramifica jos codul meu.
Un condiționată, ca să spunem așa.
Vom afla mai multe despre cei prea curând.
Sau poate, atâta timp cât acest lucru este adevărat, vreau
a face asta peste si peste si peste.
O buclă.
În ambele cazuri, știu că suntem folosind o expresie booleană, un adevărat sau fals,
pentru a decide dacă sau nu pentru a lua un anumit traseu.
Uneori, atunci când lucrăm cu expresii booleene,
vom folosi variabile de tip Bool.
S-ar putea fi declarat un Bool tastat variabilă,
și veți folosi în dvs. Expresie booleană.
Dar nu trebuie întotdeauna să fac.
După cum se dovedește, în C, fiecare non-0 valoare nu este la fel ca a spune adevărat.
Dacă ai fi declarat variabila de tip Boolean,
și atribuie o valoare adevărat, asta e la fel ca declararea un număr întreg
și atribuirea l valoarea 1, 2, 3, sau într-adevăr orice valoare
orice alta decât 0.
Pentru că în C, fiecare-0 non valoare nu este adevărat.
0, pe de altă parte, este falsă.
Acest lucru ar putea veni în la îndemână mai târziu să știe,
ci doar ceva pentru a păstra în minte.
Nu avem întotdeauna de a utiliza Variabilele booleene de tip atunci când ne-am
sunt de lucru cu expresii booleene.
>> Există două tipuri principale de Boolean expresii care vom lucra cu.
Operatori logici și operatorii relaționale.
Limbajul este nu foarte important.
Este într-adevăr doar cum mă le gruparea.
Și veți siguranta, cred eu, repede seama ce un operator relațional este,
bazat pe ceea ce sunt atunci când ne vorbesc despre ele într-o secundă.
Dar nu vă faceți griji cu privire la neapărat memorarea operatorul logic termen
sau operatorul relațională.
Eu doar l utilizați pentru a grupului le într-un mod logic.
>> Deci, haideți să aruncăm o privire la cei trei operatori logici
că vom vedea destul de bit în programare în CS50
și în programare în general.
Logic și este adevărată, dacă și numai în cazul în care ambii operanzi sunt adevărate.
Altfel false.
În cazul în care vrei să spui?
Deci, să spunem că eu sunt la o punct în codul meu, unde am
două variabile, x și y.
Și vreau să decidă dacă să facă ceva în codul meu
bazat pe X dacă este adevărat și y este adevărat.
Vreau doar să o fac în cazul în care ambele sunt adevărate,
altfel nu vreau să merg în jos, care cale pentru că nu este de gând să mă ajute.
Ce pot să spun este, dacă x și y &.
Aceasta va fi o Boolean logic expresie compararea x și y
și de a lua o anumită cale bazat pe ceea ce valorile lor sunt.
Deci, în cazul în care x este adevărat și y este adevărat bazate pe acest tabel de adevăr aici,
numai atunci vom merge pe această cale.
Dacă x, y & &.
Este true-- doar și este doar true dacă x este adevărat și y este adevărat.
Dacă una este falsă, după cum vom vedea tabela de adevăr,
atunci ambele x și y nu sunt adevărate.
Și astfel, X & Y & este falsă.
>> SAU logic este adevărată dacă și numai dacă cel puțin un operand este adevărat.
Altfel false.
Deci, logic si a cerut atât X și Y să fie adevărat.
SAU logic necesită X să fie adevărat sau y pentru a fi adevărat sau ambele x și y să fie adevărat.
Deci, din nou, ne-am cam găsi ne într-o situație
în cazul în care vom codul nostru, si am ajuns la o furculiță în drum.
Și vrem să mergem în jos o special cale dacă x este adevărat
sau Y este adevărat, dar nu în mod necesar în cazul în care ambele sunt adevărate.
Dar posibil dacă ambele sunt adevărate.
Deci, dacă x este adevărat și Y este adevărat, vom merge în jos această cale.
x este adevărat.
Una dintre ele este adevărată, nu?
Dacă x este adevărat și y este adevărat.
Dacă x este adevărat, și y este falsă, unul dintre ei este încă adevărat.
Deci, x sau y este încă adevărat.
Dacă x este falsă, iar y este adevărat, una dintre ele este încă adevărat, nu?
y este adevărat, în acest caz.
Deci, e adevărat că X sau Y este adevărat.
Numai dacă x este falsă și y este fals nu mergem pe această cale,
pentru că nici X, nici y este adevărat.
Acum, dacă sunteți în căutarea la ecran chiar acum
și întrebându-se ce că simbol este pentru logic OR,
se numește bara verticală.
Și dacă te uiți la tastatură pentru un minut, așa cum fac eu acum,
de obicei chiar deasupra Tasta Enter, pe cele mai multe tastaturi,
pe aceeași tastă ca și backslash.
Este, de asemenea, de obicei, drept alături de parantezele pătrate.
Deci, ar putea fi o cheie pe care le nu s-au tastat foarte mult în trecut.
Dar, dacă sunteți vreodată faci comparații logice,
cum vom face o lot în curs, este
va fi util pentru găsi acea cheie și să-l utilizați.
Deci, de obicei, pe aceeași tastă ca backslash chiar deasupra Enter.
>> Operatorul logic final nu este.
Și nu e destul de simplă.
Acesta inversează valoarea operandului său.
Dacă x este adevărat, atunci nu x este fals.
Dacă x este fals, atunci nu X este adevărat.
Uneori, veți auzi acest simbol pronunțată ca Bang sau de exclamare
sau nu.
E destul de mult tot acelasi lucru.
In cazul in care auzi că vorbit și nu sunteți sigur ce înseamnă că,
e doar exclamația punct, dar uneori e
numit un cuplu lucruri diferite.
Bine, astfel încât să grijă de operatori logici.
Deci, hai sa vorbim despre operatorii relaționale.
Din nou, dacă sunteți familiarizați cu această aritmetică înapoi în școala primară,
esti, probabil, familiar cu modul în care acestea de lucru deja.
Acestea se comportă exact așa cum te-ai aștepta.
Deci, mai putin este adevărat, în acest exemplu, dacă x este mai mic decât y.
Deci, în cazul în care x este 4 și y este 6, x este mai mic decât y.
Asta e adevarat.
Mai mic sau egal cu funcționează destul de similar.
Dacă x este 4, iar y este 4, atunci x este mai mic sau egal cu y.
Mai mare ca. x este mai mare decât y.
Și mai mare sau egală cu, x este mai mare sau egal cu y.
Dacă e adevărat, atunci veți trece această expresie,
și veți merge în jos această cale pe drum.
Dacă aveți un dacă x este mai mare decât y, și x este, de fapt, este mai mare decât y,
vei face tot ce este sub rezerva această condiție.
>> Observați că nu avem o caracter unic pentru mai puțin de
sau egal cu, așa cum s-ar putea fi familiarizat cu de la manuale de matematica.
Deci, avem mai puțin de simbol, urmată de semnul egal.
Așa am reprezenta mai mică sau egală cu.
Și în mod similar, facem asta pentru mai mare sau egal cu.
>> Ultimele două relațional Operatorii care sunt importante
testeaza pentru egalitate și inegalitate.
Deci, în cazul în care x este egal cu y este egal, este adevărat dacă x și y lui valoare nu este la fel.
Dacă x este 10 și y este 10, atunci x este egal este egal cu y este adevărat.
Dacă x este 10 și y este 11, x este egal egal Y nu este adevărat.
Putem testa, de asemenea pentru inegalitate, folosind semn de exclamare sau bang sau nu,
din nou.
Dacă x nu este egal cu y, în cazul în asta e testul folosim aici,
am fi bine să plec.
Deci, dacă x nu este egal cu y, vom merge pe această cale.
>> Fii foarte atent aici.
Este un mistake-- foarte comună și unul am făcut cu siguranță destul de mult atunci când
Am fost obtinerea started-- la greșeală accidental
operatorului de atribuire, egali unice, pentru operatorul comparație egalitate,
egali duble.
Va duce la unele ciudat comportamentul în codul dvs.,
și, de obicei compilatorul va vă avertizează cu privire la aceasta, atunci când încercați
și compila codul, dar uneori ar putea fi capabil să-l strecoare prin.
Nu e neaparat un lucru bun că ai strecura prin, totuși.
Doar așa că, dacă faci un test inegalitate,
dacă sunteți verificarea doi diferite variabile au aceeași valoare
în interiorul ei, asigurați-vă că pentru a utiliza este egal cu egali, și egali nu unice.
Și în acest fel programul va au comportament pe care intenționați.
Sunt Doug Lloyd și acest lucru este CS50.