Tot bé.
Així que ara anem a parlar d'alguna cosa molt útil en programming--
sentències condicionals.
Expressions Així condicionals permetre que els seus programes
per prendre decisions i prendre diferents bifurcacions en el camí, alguna cosa
Vaig al·ludir a poc més d'hora, depenent dels valors de les variables,
o sobre la base del que l'usuari introdueix en el programador, en la línia d'ordres,
o si vostè té un símbol o alguna cosa per l'estil.
C té un parell de maneres diferents per expressar expressions condicionals, que
també de vegades anomenarem bifurcació condicional en els seus programes.
I alguns d'ells van a buscar molt familiar per a vostè a partir de zero,
així que fins i tot a tirar d'ells al costat de l'altre, just
vostè pot fer aquesta analogia al seu cap.
>> Per tant, si: si és una bonica condicional simple.
Si vostè recorda de zero a la dreta aquí
vostè pot omplir és hexagonal amb una expressió blava si ratolí cap avall
o si x és menor que 10, o alguna cosa per l'estil.
I llavors, si x era de menys de 10, o si el ratolí era de fet, a baix,
tot el codi interior de la peça del trencaclosques executaria.
Totes les coses que s'ajusten dins d'aquesta forma de C.
>> De la mateixa manera, tenim si a l'esquerra allà.
Si expressió booleana, que jo només estic fent servir
com un substitut per a un dels Boolean expressions que hem discutit anteriorment,
clau d'obrir, tancar claudàtor.
Així que pensar en arrissat oberta cotilla i claudàtor tancat
com una mena d'anàleg a la sandvitx efecte del cas de bloc de la dreta
des de zero.
>> Si l'expressió booleana en la sentència if és veritable,
llavors totes les línies de codi entre les claus
s'executarà per tal de dalt a baix.
Si l'expressió booleana és fals, anem a
saltar sobretot en el medi les claus, perquè només
vull anar per aquest forquilla a la carretera si l'expressió booleana és veritable.
>> Podem fer un pas Si encara més amb els altres.
Així que aquest bloc Scratch és bastant similar a la
vam veure fa tot just un segon, excepte que pren dos camins diferents en funció
en el que passa.
Així que si el ratolí es va reduir, o si x anar de menys de 10,
farem tot el que està en el mig aquest primer forquilla, que primer C,
>> Altrament, si el ratolí és amunt, o x no és menor que 10,
farem tot el que en el segon set.
I això és anàleg al que es veu aquí per a l'expressió C. Si Boole,
fer les coses entre el primer joc de claus.
Si no, fer les coses entre el segon joc de claus.
Així que si el booleà expressió és veritable, anem a
fer tot el que està entre el primer set.
Si l'expressió booleana és falsa, que posarien en marxa la cosa,
i que anàvem a fer el que sigui que en el segon joc de claus.
Un cop més, de dalt a baix, tot línies entre les claus.
>> En C, és possible crear un if-else cadena if-else.
De fet, vostè pot tenir si-else if-else if-else, si, i així successivament i així successivament i així
en.
En Scratch, això requeria niar els blocs.
Vostè afegir un else if, i calia dit d'una altra un dins de l'altre,
i així successivament, i es va posar espècie de niat i complicada.
Però C, no hem de fer això.
Podem en realitat només tenen sigui una cadena com aquesta.
Un cop més, com era d'esperar, tots els aquestes branques són mútuament excloents.
Vostè pot anar només mai per un de la branca.
Si això és cert.
Altrament, si això és cert.
En cas contrari, fer això.
Així que els quatre de les branques d'aquest exemple són mútuament excloents.
És una cadena if-else if-else.
>> És possible, però, i, de vegades molt útil,
per crear una cadena de no branques mútuament excloents.
En aquest exemple, només el tercer i quartes branques són mútuament excloents.
Podria ser que vostè podria satisfer la primera condició,
i vostè podria satisfer la segona condició,
i vostè podria satisfer la tercer condición-- en aquest cas
va a anar per la primera branca, després cal baixar una segona branca,
llavors seria anar per la tercera branca.
O potser vostè satisfà el primer condicions, i la segona condició,
però vostè no satisfà la tercera condició.
En aquest cas cal abaixar la primera branca i la segona branca,
i llavors la quarta branca,
>> La raó d'això és que l'altre només s'unirà al més proper si.
Així que, encara que no hi una cosa aquí, que
no necessàriament crear un mutu cadena exclusiva de tot.
No és més que l'expressió allà amb Boole
expressió 3-- aquesta és la mútuament excloent amb l'altra persona.
Així que és possible, i de vegades molt útil,
com ja he dit, per crear una cadena de branques no s'exclouen mútuament.
Fem una ullada a una diferent tipus de condicional, que
vostè no ha vist abans en Scratch.
Hi ha alguna cosa que es diu la sentència switch.
La sentència switch és molt guai perquè és
una sentència condicional que permet especificar els casos diferents,
en lloc de dependre de Boole expressions per prendre decisions per vostè.
Així, per exemple, diguem que tinc aquest programa,
i jo estic demanant a l'usuari fer aportacions a mi.
Per això dic, int x = Obtenir Int (), i si vostè encara no està familiaritzat,
aconseguir int és una funció que és També s'inclou a la biblioteca CS50,
així que si vostè #include CS50.H tindràs Accedir a Int () i la totalitat del seu
cousins-- GetFloat, GetString, i així successivament.
Bàsicament una aconsegueix la funció per a cada tipus de dades que ja hem discutit.
>> Així Int x és igual getInt.
Bàsicament el que està passant és que estic a la terminal.
Estic demanant a l'usuari que escrigui un nombre.
>> I aquí estic canviant el que estic fent, en funció
en el que l'usuari va escriure en l'indicador.
Així que si escriuen una, imprimeixo un.
I llavors em trenco.
Si tipus dos, puc imprimir a dos.
I llavors em trenco.
És important trencar entre cada cas
perquè en cas contrari se li cauen a través de.
Així que si jo no tenia cap trenca allà, i l'usuari
només amb tipus, el que succeiria és que imprimiria una, dues, tres, ho sento.
Això és una mica estrany comportament, no?
Es podria pensar així.
Però en realitat hi ha alguns casos en què això podria ser una cosa bastant útil.
Així que aquí està un altre exemple d'un interruptor declaració on Ometo els descansos.
Però ho faig a propòsit.
>> Llavors, què passa aquí?
Pensa per un segon.
Vostè pot fins i tot desitjar per aturar el vídeo.
>> El que passa aquí si l'usuari escriu 4?
Així que li he demanat a l'usuari per a l'entrada.
I proporcionen el valor 4.
El que s'imprimeix quan faig això?
A la diapositiva anterior, havia descansos entre tots els casos.
I així ho faria només imprimir quatre i després s'atura.
Però en aquest cas, no ho farà.
¿Què passarà és que caurà a través de cada cas.
>> Així que en aquest cas he organitzat els meus casos de tal manera que si l'usuari 4,
Vaig a imprimir quatre, tres, dos, un, Blast Off.
I si ells escriuen 5, m'agradaria començar a les cinc i fer el mateix.
Si escriuen 1, ho faria acaba de fer un, enlairament.
>> Així que en aquest cas, jo estic fent servir un interruptor de tipus de hàbilment el
que tinc la intenció de caure a través de tots els casos.
Però en general, vostè està probablement va a vol trencar entre tots ells,
llevat que tingui una situació com aquest, on ets
tipus d'aprofitar el fet que vostè va a cauen a través dels casos, sense un descans.
Així que aquest és el segon dels principals tipus de sentències condicionals.
L'última d'elles és: ¿Així que dos fragments de codi C aquí.
Un a l'esquerra i un altre a la dreta.
El de l'esquerra ha de probablement serà bastant familiar per a vostè.
>> Tinc Int x.
I jo probablement hauria han demanat a l'usuari
para-- això deu probablement Int x és igual a getInt, o alguna cosa així.
I després estic de prendre una decisió.
Si alguna expressió booleana és cert, assigni el valor x 5.
Altrament, assigni el valor x 6.
>> La de l'esquerra, probablement hauria d'haver bastant familiar de la nostra discussió
de Else Si fa un moment.
Li sorprendria saber que la línia a la dreta
fa exactament el mateix?
>> Així que això es diu :? O, de vegades anomenat l'operador ternari.
I és molt bo.
En general és utilitzat com un truc valent.
>> Però el que li permet fer és simular un cas Else amb molt petita,
realment trivial curta branques condicionals.
En general, no hauria d'utilitzar :? Si tenia sis línies de codi entre cada sèrie
claus de arrissat.
Però si no ets més que prendre una decisió ràpida,
si vas a fer una cosa o l'altre i és molt simple,
això podria ser un exemple de com fer-ho amb: l'operador ternari.
Així Int x és igual a l'expressió?
La cosa després de la pregunta marca és del que x valor
serà si l'expressió és veritable.
>> La cosa després de la còlon és quin valor de x
seria si l'expressió és falsa.
Així que em pregunto, És cert l'expressió?
Si és així, assignar el valor x 5.
Si no ho és, assignar el valor x 6.
Un cop més, com he dit.
Això és en general només un truc valent.
I de vegades si es queda molt còmode amb ell,
que va a fer això perquè el que sembla una mena de fresc en els seus programes.
En general estic d'presentar-lo a ara pel que està familiaritzat amb ell
si ho veus.
Però sens dubte sap que no té escriure en qualsevol de la seva codi.
Però és una cosa que estigui familiaritzat amb, ja que sens dubte troba
fragments de codi aquí i allà on això: la sintaxi,
També conegut com l'operador ternari, s'utilitza.
>> Resum Així ràpida en ho són condicionals,
i quines són les opcions disponibles a vostè en C. Si vostè té i si una altra cosa,
i si una altra cosa si, etcètera.
Podeu utilitzar expressions booleanes per a aquells de prendre decisions.
>> Amb sentències switch utilitza casos discrets per prendre decisions.
Es podria dir específicament, si és un, o si es tracta de dos, o si es tracta de tres,
Vaig a fer aquesta cosa, o aquesta cosa, o aquesta cosa.
I: ¿pot ser utilitzat per reemplaçar branques if-else molt simples,
o si-else cadenes per fer el seu codi de mirar una mica de fantasia.
>> Sóc Doug Lloyd.
I això és CS50.