Correcto.
Así que ahora vamos a hablar de algo muy útil en programming--
sentencias condicionales.
Expresiones Así condicionales permitir que sus programas
para tomar decisiones y tomar diferentes bifurcaciones en el camino, algo
Aludí a poco más temprano, dependiendo de los valores de las variables,
o sobre la base de lo que el usuario introduce en el programador, en la línea de comandos,
o si usted tiene un símbolo o algo asi.
C tiene un par de maneras diferentes para expresar expresiones condicionales, que
también a veces llamaremos bifurcación condicional en sus programas.
Y algunos de ellos van a buscar muy familiar para usted a partir de cero,
así que incluso a tirar de ellos al lado del otro, justo
usted puede hacer esa analogía en su cabeza.
>> Por lo tanto, si: si es una bonita condicional simple.
Si usted recuerda de cero a la derecha aquí
usted puede llenar es hexagonal con una expresión azul si ratón hacia abajo
o si x es menor que 10, o algo asi.
Y entonces, si x era de menos de 10, o si el ratón era de hecho, abajo,
todo el código interior de la pieza del rompecabezas ejecutaría.
Todas las cosas que se ajustan dentro de esa forma de C.
>> Del mismo modo, tenemos si a la izquierda allí.
Si expresión booleana, que yo sólo estoy usando
como un sustituto para uno de los Boolean expresiones que hemos discutido anteriormente,
llave de abrir, cerrar corchete.
Así que pensar en rizado abierta corsé y corchete cerrado
como una especie de análogo a la sándwich efecto del caso de bloque de la derecha
desde cero.
>> Si la expresión booleana en la sentencia if es verdadera,
entonces todas las líneas de código entre las llaves
se ejecutará con el fin de arriba a abajo.
Si la expresión booleana es falso, vamos a
saltar sobre todo en el medio las llaves, porque sólo
quiero ir por ese tenedor en la carretera si la expresión booleana es verdadera.
>> Podemos dar un paso Si aún más con los demás.
Así que este bloque Scratch es bastante similar a la
vimos hace apenas un segundo, excepto que toma dos caminos diferentes en función
en lo que sucede.
Así que si el ratón se redujo, o si x fue de menos de 10,
vamos a hacer todo lo que está en el medio ese primer tenedor, que primero C,
>> De lo contrario, si el ratón es arriba, o x no es menor que 10,
haremos todo lo que en el segundo set.
Y eso es análogo a lo que se ve aquí para la expresión C. Si Boole,
hacer las cosas entre el primer juego de llaves.
Si no, hacer las cosas entre el segundo juego de llaves.
Así que si el booleano expresión es verdadera, vamos a
hacer todo lo que está entre el primer set.
Si la expresión booleana es falsa, que pondrían en marcha la cosa,
y que íbamos a hacer lo que sea que en el segundo juego de llaves.
Una vez más, de arriba abajo, todo líneas entre las llaves.
>> En C, es posible crear un if-else cadena if-else.
De hecho, usted puede tener si-else if-else if-else, si, y así sucesivamente y así sucesivamente y así
en.
En Scratch, esto requería anidar los bloques.
Usted añadir un else if, y había que dicho de otra uno dentro del otro,
y así sucesivamente, y se puso especie de anidado y complicada.
Pero C, no tenemos que hacer eso.
Podemos en realidad sólo tienen sea ​​una cadena como esta.
Una vez más, como era de esperar, todos los estas ramas son mutuamente excluyentes.
Usted puede ir solamente nunca por uno de la rama.
Si esto es cierto.
De lo contrario, si esto es cierto.
De lo contrario, hacer esto.
Así que los cuatro de las ramas de este ejemplo son mutuamente excluyentes.
Es una cadena if-else if-else.
>> Es posible, sin embargo, y, a veces muy útil,
para crear una cadena de no ramas mutuamente excluyentes.
En este ejemplo, sólo el tercero y cuartas ramas son mutuamente excluyentes.
Podría ser que usted podría satisfacer la primera condición,
y usted podría satisfacer la segunda condición,
y usted podría satisfacer la tercero condición-- en cuyo caso
va a ir por la primera rama, luego hay que bajar una segunda rama,
entonces sería ir por la tercera rama.
O tal vez usted satisface el primero condiciones, y la segunda condición,
pero usted no satisface la tercera condición.
En este caso hay que bajar la primera rama y la segunda rama,
y entonces la cuarta rama,
>> La razón de esto es que el otro solamente se unirá al más cercano si.
Así que, aunque no hay una cosa aquí, que
no necesariamente crear un mutuo cadena exclusiva de todo.
No es más que la expresión allí con Boole
expresión 3-- esa es la mutuamente excluyente con la otra persona.
Así que es posible, y a veces muy útil,
como ya he dicho, para crear una cadena de ramas no se excluyen mutuamente.
Echemos un vistazo a una diferente tipo de condicional, que
usted no ha visto antes en Scratch.
Hay algo que se llama la sentencia switch.
La sentencia switch es muy guay porque es
una sentencia condicional que permite especificar los casos distintos,
en lugar de depender de Boole expresiones para tomar decisiones por usted.
Así, por ejemplo, digamos que tengo este programa,
y yo estoy pidiendo al usuario hacer aportaciones a mí.
Por eso digo, int x = Obtener Int (), y si usted aún no está familiarizado,
conseguir int es una función que es También se incluye en la biblioteca CS50,
así que si usted #include CS50.H tendrás Obtener acceso a Int () y la totalidad de su
cousins-- GetFloat, GetString, y así sucesivamente.
Básicamente una consigue la función para cada tipo de datos que ya hemos discutido.
>> Así Int x es igual getInt.
Básicamente lo que está pasando es que estoy en la terminal.
Estoy pidiendo al usuario que escriba un número.
>> Y aquí estoy cambiando lo que estoy haciendo, en función
en lo que el usuario escribió en el indicador.
Así que si escriben una, imprimo una.
Y entonces me rompo.
Si tipo dos, puedo imprimir a dos.
Y entonces me rompo.
Es importante romper entre cada caso
porque de lo contrario se le caen a través de.
Así que si yo no tenía ninguna rompe allí, y el usuario
solo con tipo, lo que sucedería es que imprimiría una, dos, tres, lo siento.
Eso es un poco extraño comportamiento, ¿no?
Se podría pensar así.
Pero en realidad hay algunos casos en que esto podría ser una cosa bastante útil.
Así que aquí está otro ejemplo de un interruptor declaración donde Omito los descansos.
Pero lo hago a propósito.
>> Entonces, ¿qué pasa aquí?
Piensa por un segundo.
Usted puede incluso desear para pausar el video.
>> Lo que sucede aquí si el usuario escribe cuatro?
Así que le he pedido al usuario para la entrada.
Y proporcionan el valor 4.
Lo que se imprime cuando hago eso?
En la diapositiva anterior, había descansos entre todos los casos.
Y así lo haría solo imprimir cuatro y luego se detiene.
Pero en este caso, no lo hará.
¿Qué va a pasar es que caerá a través de cada caso.
>> Así que en este caso he organizado mis casos de tal manera que si el usuario 4,
Voy a imprimir cuatro, tres, dos, uno, Blast Off.
Y si ellos escriben 5, me gustaría empezar a las cinco y hacer lo mismo.
Si escriben 1, lo haría acaba de hacer uno, despegue.
>> Así que en este caso, yo estoy usando un interruptor de tipo de hábilmente lo
que tengo la intención de caer a través de todos los casos.
Pero en general, usted está probablemente va a quiere romper entre todos ellos,
a menos que tenga una situación como éste, donde estás
tipo de aprovechar el hecho de que usted va a caen a través de los casos, sin un descanso.
Así que ese es el segundo de los principales tipos de sentencias condicionales.
La última de ellas es: ¿Así que dos fragmentos de código C aquí.
Uno a la izquierda y otro a la derecha.
El de la izquierda debe probablemente será bastante familiar para usted.
>> Tengo Int x.
Y yo probablemente debería han pedido al usuario
para-- esto debe probablemente Int x es igual a getInt, o algo así.
Y luego estoy de tomar una decisión.
Si alguna expresión booleana es cierto, asigne el valor x 5.
De lo contrario, asigne el valor x 6.
>> La de la izquierda, probablemente debería haber bastante familiar de nuestra discusión
de Else Si hace un momento.
¿Le sorprendería saber que la línea a la derecha
hace exactamente lo mismo?
>> Así que esto se llama:? O, a veces llamado el operador ternario.
Y es muy bueno.
Por lo general es utilizado como un truco lindo.
>> Pero lo que le permite hacer es simular un caso Else con muy pequeña,
realmente trivial corta ramas condicionales.
Por lo general, no debería utilizar:? Si tenía seis líneas de código entre cada serie
llaves de rizado.
Pero si no eres más que tomar una decisión rápida,
si vas a hacer una cosa o el otro y es muy simple,
esto podría ser un ejemplo de cómo hacerlo con: el operador ternario.
Así Int x es igual a la expresión?
La cosa después de la pregunta marca es de lo que x valor
será si la expresión es verdadera.
>> La cosa después de la colon es qué valor de x
sería si la expresión es falsa.
Así que me pregunto, Es cierto la expresión?
Si es así, asignar el valor x 5.
Si no lo es, asignar el valor x 6.
Una vez más, como he dicho.
Esto es por lo general sólo un truco lindo.
Y a veces si se queda muy cómodo con él,
que va a hacer esto porque lo que parece una especie de fresco en sus programas.
En general estoy de presentarlo a ahora por lo que está familiarizado con él
si lo ves.
Pero sin duda sabe que no tiene escribir en cualquiera de su código.
Pero es algo que esté familiarizado con, ya que sin duda encuentra
fragmentos de código por aquí y por allí donde esto: la sintaxis,
También conocido como el operador ternario, se utiliza.
>> Resumen Así rápida en lo son condicionales,
y ¿cuáles son las opciones disponibles a usted en C. Si Usted tiene y si otra cosa,
y si otra cosa si, etcétera.
Puede utilizar expresiones booleanas para aquellos que tomar decisiones.
>> Con sentencias switch utiliza casos discretos para tomar decisiones.
Se podría decir específicamente, si es uno, o si se trata de dos, o si se trata de tres,
Voy a hacer esta cosa, o esta cosa, o esta cosa.
Y: ¿puede ser utilizado para reemplazar ramas if-else muy simples,
o si-else cadenas para hacer su código de mirar un poco de fantasía.
>> Soy Doug Lloyd.
Y esto es CS50.