In regula.
Deci, acum hai sa vorbim despre ceva într-adevăr util în programming--
Declarații condiționată.
Expresii condiționale Deci permite programele
pentru a lua decizii și să ia diferite furci în drum, ceva
Am făcut aluzie la puțin mai devreme, în funcție de valorile variabilelor,
sau bazat pe ceea ce intrările de utilizator de la programator, la linia de comandă,
sau dacă aveți un prompt sau asa ceva.
C are o pereche de moduri diferite de a exprima expresii conditionale, care
De asemenea, uneori, se va apela un sucursală condiționată în programele dumneavoastră.
Iar unele dintre acestea sunt de gând să se uite destul de familiar pentru tine de la zero,
așa le vom trage chiar up cot la cot, doar
puteți face că analogie în cap.
>> Deci, în cazul în care este un if-- destul de simplu condiționată.
Dacă vă amintiți de la zgârietură pe dreapta aici
ai putea umple în care este hexagon cu o expresie albastru dacă mouse-ul jos
sau dacă x este mai mic de 10, sau asa ceva.
Și apoi, dacă x fost mai mică de 10, sau în cazul în care mouse-ul a fost, de fapt, în jos,
toate din Codul interiorul piesa de puzzle ar executa.
Toate lucrurile care se potrivesc în interiorul acestei forme C.
>> În mod similar, avem dacă pe stânga acolo.
Dacă expresia booleană, care Sunt doar folosind
ca un substitut pentru unul din Boolean expresii am discutat anterior,
bretele buclat deschis, aproape bretele buclat.
Deci, cred că de cret deschise bretele și bretele buclat închis
ca un fel de analog sandwich efect al blocului în cazul privind dreptul
de la zero.
>> Dacă expresia booleană în cazul în care declarația este adevărat,
atunci toate liniile de cod între acolade
va executa în ordine de sus până jos.
Dacă expresia booleană este falsă, vom
săriți peste tot în între acolade, deoarece numai noi
doresc să meargă în jos, care furculiță în drum în cazul în care expresia booleană este adevărat.
>> Putem lua acest un pas mai departe cu cazul altceva.
Deci, acest bloc Scratch este destul similară cu cea
am văzut în urmă cu doar o secundă, cu excepția este nevoie de două căi diferite, bazate
pe ceea ce se întâmplă.
Deci, în cazul în care mouse-ul a fost în jos, sau dacă x fost mai mică de 10,
vom face tot ceea ce este în între că în primul rând furca, că în primul rând C.,
>> Altfel, în cazul în care mouse-ul este sus, sau x este de cel puțin 10,
vom face tot ceea ce, în al doilea set.
Și asta e analog cu ceea ce vezi aici pentru exprimare C. Dacă Boolean,
face lucrurile între Primul set de acolade.
Altfel, nu chestii între al doilea set de acolade.
Deci, în cazul în care Boolean expresie este adevărat, vom
face tot ce e între primul set.
În cazul în care expresia booleană este fals, care ar declanșa altceva,
si ne-ar face orice în al doilea set de acolade.
Din nou, de sus în jos, toate linii în între acolade.
>> În C, este posibil pentru a crea o dacă-else if-else lanț.
De fapt, puteți avea dacă-else if-else dacă-altceva, în cazul în care, și așa mai departe și așa mai departe și așa
Pe.
În Scratch, acest necesar cuiburi blocuri.
Adăugați un dacă-altceva, și a trebuit să pune un alt unul în interiorul altceva,
și așa mai departe, și a ajuns un fel de imbricate și complicat.
Dar C, noi nu trebuie să faci asta.
Putem doar de fapt, avea fi un lanț ca aceasta.
Din nou, așa cum s-ar putea aștepta, toate aceste ramuri se exclud reciproc.
Puteți doar merge vreodată jos unul al filialei.
Dacă acest lucru este adevărat.
În caz contrar, în cazul în care acest lucru este adevărat.
În caz contrar, face acest lucru.
Deci, toate cele patru ramuri din acest exemplu se exclud reciproc.
Este un lanț dacă-altceva, dacă-altceva.
>> Este posibil totuși, și, uneori, foarte util,
pentru a crea un lanț de nu ramuri exclud reciproc.
În acest exemplu, doar a treia și a ramuri a patra se exclud reciproc.
S-ar putea fi faptul că ai putea satisface prima condiție,
și ați putea satisface a doua condiție,
și ați putea satisface al treilea caz în care condition--
v-ar merge pe primul aspect, apoi te duci în jos un al doilea ramură,
atunci ar merge în jos de-a treia ramură.
Sau poate satisface primul condiție, și a doua condiție,
dar tu nu satisfac a treia condiție.
În acest caz, te duci în jos primul ramură și al doilea aspect,
și apoi a patra ramura,
>> Motivul pentru aceasta este faptul că else va lega numai la cel mai apropiat în cazul în care.
Deci, chiar dacă nu e o mai aici, că
nu creează în mod necesar un reciproc lanț exclusiv de tot.
Este doar expresia acolo cu Boolean
expresie 3-- Asta e exclud reciproc cu altceva.
Deci, este posibil, și uneori destul de util,
după cum am spus, pentru a crea un lanț de sucursalele nu se exclud reciproc.
Să aruncăm o privire la un alt fel de condiționată, care
nu ați văzut înainte în Scratch.
Nu e ceva ce se numește declarația comutator.
Declarația switch este fel de elegant, deoarece este
o declarație condițională, care permite să specificați cazuri distincte,
în loc să se bazeze pe booleene expresii pentru a lua decizii pentru tine.
Deci, de exemplu, să spunem că am acest program,
și eu cer utilizatorului de a contribui la mine.
Așa că am spus, int x = Get Int (), și dacă nu sunteți familiarizați încă,
obține Int este o funcție care este De asemenea, sunt incluse în bibliotecă CS50,
așa că, dacă #include CS50.H veți avea acces pentru a obține Int () si toate sale
cousins-- GetFloat, GetString, și așa mai departe.
Practic o obține pentru fiecare funcție tip de date pe care le-am discutat deja.
>> Deci, int x este egal cu getint.
Practic ceea ce se întâmplă este că sunt la terminal.
Eu cer utilizatorului să tastați într-un număr.
>> Și aici mă comutare ceea ce fac, în funcție
pe ceea ce utilizatorul tastat la prompt.
Deci, în cazul în care unul scris, am imprima o.
Și apoi m-am rupe.
În cazul în care tipul doi, am imprima două.
Și apoi m-am rupe.
Este important să pauză între fiecare caz
pentru că în caz contrar va cădea prin.
Deci, dacă nu am avea nici o pauze acolo, iar utilizatorul
o dactilografiate, ce se va întâmpla este ar imprima una, două, trei, îmi pare rău.
Asta e un fel de comportament ciudat, nu?
Ai putea crede așa.
Dar există unele cazuri în care de fapt acest lucru ar putea fi un lucru destul de util.
Deci, aici este un alt exemplu de un comutator declarație în cazul în care am omite pauze.
Dar o fac intenționat.
>> Deci, ce se întâmplă aici?
Gândiți-vă pentru un al doilea.
Ați putea dori chiar pentru a întrerupe videoclipul.
>> Ce se întâmplă aici, dacă tipurile de utilizatori patru?
Așa că am cerut de utilizator pentru intrare.
Și le oferă valoarea 4.
Ce se imprimate atunci când fac asta?
Pe diapozitivul anterior, s-au pauzele dintre toate cazurile.
Și așa ar fi doar imprima patru și apoi opri.
Dar, în acest caz, nu va.
Ce se va întâmpla este că va cădea prin fiecare caz.
>> Deci, în acest caz, am organizat cazurile mele în așa fel încât, dacă utilizatorul introduce 4,
Eu va imprima patru, trei, doi, unu, blast off.
Și în cazul în care tastat 5, aș începe la cinci și de a face același lucru.
În cazul în care tastat 1, aș face- nu doar o, explozie off.
>> Deci, în acest caz, eu sunt, folosind un comutator fel de ingenios astfel
că intenționez să scadă prin toate cazurile.
Dar, în general, probabil, o să te doresc să rupă între toate acestea,
dacă nu aveți o situație ca aceasta în cazul în care ești
un fel de pârghie faptul că veți cad prin cazurile fără o pauză.
Deci, asta e al doilea majore tipuri de declarații condiționată.
Dintre care ultima este:? Deci, eu au două fragmente de cod C de aici.
Unul pe partea stângă și unul la dreapta.
Cel din stânga ar trebui să probabil să fie destul de familiar pentru tine.
>> Am int x.
Și că ar trebui, probabil, au cerut utilizatorul
for-- acest lucru ar trebui să fie, probabil, int x este egal getint, sau ceva de genul asta.
Și apoi am lua o decizie.
Dacă unele expresie booleană este adevărat, aloca X valoarea 5.
În caz contrar, atribuie X valoarea 6.
>> Că pe stânga ar trebui să fie, probabil, destul de familiar din discuția noastră
Dacă în urmă cu Else doar un moment.
Ai fi surprins să știe că linia pe dreapta
face exact același lucru?
>> Deci, aceasta se numește:? Sau, uneori, numit operatorul ternar.
Și e destul de cool.
Este de obicei folosit ca un truc drăguț.
>> Dar ceea ce vă permite să faci este să simula o Dacă altcineva cu foarte mic,
într-adevăr trivial scurt ramuri condiționată.
Tu, în general, nu s-ar folosi:? Dacă a avut șase linii de cod între fiecare set
bretele de buclat.
Dar daca esti doar luarea unei decizii rapide,
dacă ai de gând să faci un singur lucru sau de altă parte și este foarte simplu,
acest lucru ar putea fi un exemplu de cum să fac cu:? operatorul ternar.
Deci, int x este egal cu expresie?
Lucrul după întrebarea marca este ceea ce X valoare
va fi în cazul în care expresia este adevărată.
>> Lucru după colon este ceea ce valoare a lui X
ar fi în cazul în care expresia a fost falsă.
Așa că mă întreb, este expresia adevărat?
Dacă este, atribuiți X valoarea 5.
În cazul în care nu este, atribui X valoarea 6.
Din nou, cum am spus.
Aceasta este, de obicei, doar un truc drăguț.
Și, uneori, dacă rămâneți foarte confortabil cu ea,
vei face acest lucru, deoarece se pare fel de rece în programele dumneavoastră.
În general, am o prezentare a te acum așa sunteți familiarizat cu ea
dacă îl vezi.
Dar cu siguranță știu că nu ai să-l scrie în oricare din codul.
Dar este ceva să fie familiarizați cu, pentru că veți întâlni cu siguranță
fragmente de cod aici și acolo unde acest lucru:? sintaxă,
AKA operatorul ternar, se utilizează.
>> Rezumat atât de rapid pe ce condiționale sunt,
și care sunt disponibile opțiunile la tine în C. Dacă aveți și dacă-altceva,
și dacă altceva dacă, etc..
Puteți folosi expresii booleene pentru cei de a lua decizii.
>> Cu declarațiile de comutare folosiți cazuri discrete pentru a lua decizii.
Te-ar spune în mod specific, în cazul în care este una, sau în cazul în care este de două, sau în cazul în care este de trei,
Voi face asta, sau acest lucru, sau acest lucru.
Și:? Pot să fie folosite pentru a înlocui foarte simplu de sucursale dacă-altceva,
sau în cazul în care-altceva lanțuri pentru a face codul uite un pic de lux.
>> Sunt Doug Lloyd.
Și acest lucru este CS50.