1 00:00:00,000 --> 00:00:05,140 2 00:00:05,140 --> 00:00:05,640 Correcto. 3 00:00:05,640 --> 00:00:08,330 Así que ahora vamos a hablar de algo muy útil en programming-- 4 00:00:08,330 --> 00:00:09,914 sentencias condicionales. 5 00:00:09,914 --> 00:00:11,830 Expresiones Así condicionales permitir que sus programas 6 00:00:11,830 --> 00:00:14,538 para tomar decisiones y tomar diferentes bifurcaciones en el camino, algo 7 00:00:14,538 --> 00:00:17,670 Aludí a poco más temprano, dependiendo de los valores de las variables, 8 00:00:17,670 --> 00:00:20,990 o sobre la base de lo que el usuario introduce en el programador, en la línea de comandos, 9 00:00:20,990 --> 00:00:23,130 o si usted tiene un símbolo o algo asi. 10 00:00:23,130 --> 00:00:26,690 C tiene un par de maneras diferentes para expresar expresiones condicionales, que 11 00:00:26,690 --> 00:00:29,911 también a veces llamaremos bifurcación condicional en sus programas. 12 00:00:29,911 --> 00:00:32,910 Y algunos de ellos van a buscar muy familiar para usted a partir de cero, 13 00:00:32,910 --> 00:00:35,190 así que incluso a tirar de ellos al lado del otro, justo 14 00:00:35,190 --> 00:00:38,170 usted puede hacer esa analogía en su cabeza. 15 00:00:38,170 --> 00:00:41,250 >> Por lo tanto, si: si es una bonita condicional simple. 16 00:00:41,250 --> 00:00:43,560 Si usted recuerda de cero a la derecha aquí 17 00:00:43,560 --> 00:00:50,000 usted puede llenar es hexagonal con una expresión azul si ratón hacia abajo 18 00:00:50,000 --> 00:00:53,010 o si x es menor que 10, o algo asi. 19 00:00:53,010 --> 00:00:57,390 Y entonces, si x era de menos de 10, o si el ratón era de hecho, abajo, 20 00:00:57,390 --> 00:01:01,140 todo el código interior de la pieza del rompecabezas ejecutaría. 21 00:01:01,140 --> 00:01:03,720 Todas las cosas que se ajustan dentro de esa forma de C. 22 00:01:03,720 --> 00:01:07,200 >> Del mismo modo, tenemos si a la izquierda allí. 23 00:01:07,200 --> 00:01:09,210 Si expresión booleana, que yo sólo estoy usando 24 00:01:09,210 --> 00:01:13,010 como un sustituto para uno de los Boolean expresiones que hemos discutido anteriormente, 25 00:01:13,010 --> 00:01:15,240 llave de abrir, cerrar corchete. 26 00:01:15,240 --> 00:01:17,720 Así que pensar en rizado abierta corsé y corchete cerrado 27 00:01:17,720 --> 00:01:22,720 como una especie de análogo a la sándwich efecto del caso de bloque de la derecha 28 00:01:22,720 --> 00:01:24,070 desde cero. 29 00:01:24,070 --> 00:01:28,680 >> Si la expresión booleana en la sentencia if es verdadera, 30 00:01:28,680 --> 00:01:30,900 entonces todas las líneas de código entre las llaves 31 00:01:30,900 --> 00:01:33,870 se ejecutará con el fin de arriba a abajo. 32 00:01:33,870 --> 00:01:35,700 Si la expresión booleana es falso, vamos a 33 00:01:35,700 --> 00:01:38,610 saltar sobre todo en el medio las llaves, porque sólo 34 00:01:38,610 --> 00:01:44,570 quiero ir por ese tenedor en la carretera si la expresión booleana es verdadera. 35 00:01:44,570 --> 00:01:48,540 >> Podemos dar un paso Si aún más con los demás. 36 00:01:48,540 --> 00:01:50,820 Así que este bloque Scratch es bastante similar a la 37 00:01:50,820 --> 00:01:55,884 vimos hace apenas un segundo, excepto que toma dos caminos diferentes en función 38 00:01:55,884 --> 00:01:56,550 en lo que sucede. 39 00:01:56,550 --> 00:02:00,420 Así que si el ratón se redujo, o si x fue de menos de 10, 40 00:02:00,420 --> 00:02:04,780 vamos a hacer todo lo que está en el medio ese primer tenedor, que primero C, 41 00:02:04,780 --> 00:02:08,430 >> De lo contrario, si el ratón es arriba, o x no es menor que 10, 42 00:02:08,430 --> 00:02:10,460 haremos todo lo que en el segundo set. 43 00:02:10,460 --> 00:02:15,010 Y eso es análogo a lo que se ve aquí para la expresión C. Si Boole, 44 00:02:15,010 --> 00:02:17,910 hacer las cosas entre el primer juego de llaves. 45 00:02:17,910 --> 00:02:20,550 Si no, hacer las cosas entre el segundo juego de llaves. 46 00:02:20,550 --> 00:02:22,080 Así que si el booleano expresión es verdadera, vamos a 47 00:02:22,080 --> 00:02:23,580 hacer todo lo que está entre el primer set. 48 00:02:23,580 --> 00:02:27,480 Si la expresión booleana es falsa, que pondrían en marcha la cosa, 49 00:02:27,480 --> 00:02:30,100 y que íbamos a hacer lo que sea que en el segundo juego de llaves. 50 00:02:30,100 --> 00:02:34,190 Una vez más, de arriba abajo, todo líneas entre las llaves. 51 00:02:34,190 --> 00:02:38,130 >> En C, es posible crear un if-else cadena if-else. 52 00:02:38,130 --> 00:02:42,000 De hecho, usted puede tener si-else if-else if-else, si, y así sucesivamente y así sucesivamente y así 53 00:02:42,000 --> 00:02:42,720 en. 54 00:02:42,720 --> 00:02:44,660 En Scratch, esto requería anidar los bloques. 55 00:02:44,660 --> 00:02:48,280 Usted añadir un else if, y había que dicho de otra uno dentro del otro, 56 00:02:48,280 --> 00:02:51,110 y así sucesivamente, y se puso especie de anidado y complicada. 57 00:02:51,110 --> 00:02:52,450 Pero C, no tenemos que hacer eso. 58 00:02:52,450 --> 00:02:55,300 Podemos en realidad sólo tienen sea ​​una cadena como esta. 59 00:02:55,300 --> 00:02:58,350 Una vez más, como era de esperar, todos los estas ramas son mutuamente excluyentes. 60 00:02:58,350 --> 00:03:00,750 Usted puede ir solamente nunca por uno de la rama. 61 00:03:00,750 --> 00:03:02,270 Si esto es cierto. 62 00:03:02,270 --> 00:03:03,930 De lo contrario, si esto es cierto. 63 00:03:03,930 --> 00:03:05,700 De lo contrario, si esto es cierto. 64 00:03:05,700 --> 00:03:07,120 De lo contrario, hacer esto. 65 00:03:07,120 --> 00:03:11,010 Así que los cuatro de las ramas de este ejemplo son mutuamente excluyentes. 66 00:03:11,010 --> 00:03:14,900 Es una cadena if-else if-else. 67 00:03:14,900 --> 00:03:17,580 >> Es posible, sin embargo, y, a veces muy útil, 68 00:03:17,580 --> 00:03:20,950 para crear una cadena de no ramas mutuamente excluyentes. 69 00:03:20,950 --> 00:03:24,600 En este ejemplo, sólo el tercero y cuartas ramas son mutuamente excluyentes. 70 00:03:24,600 --> 00:03:27,450 Podría ser que usted podría satisfacer la primera condición, 71 00:03:27,450 --> 00:03:29,396 y usted podría satisfacer la segunda condición, 72 00:03:29,396 --> 00:03:31,770 y usted podría satisfacer la tercero condición-- en cuyo caso 73 00:03:31,770 --> 00:03:35,270 va a ir por la primera rama, luego hay que bajar una segunda rama, 74 00:03:35,270 --> 00:03:37,000 entonces sería ir por la tercera rama. 75 00:03:37,000 --> 00:03:40,450 O tal vez usted satisface el primero condiciones, y la segunda condición, 76 00:03:40,450 --> 00:03:42,770 pero usted no satisface la tercera condición. 77 00:03:42,770 --> 00:03:46,230 En este caso hay que bajar la primera rama y la segunda rama, 78 00:03:46,230 --> 00:03:48,040 y entonces la cuarta rama, 79 00:03:48,040 --> 00:03:51,392 >> La razón de esto es que el otro solamente se unirá al más cercano si. 80 00:03:51,392 --> 00:03:53,100 Así que, aunque no hay una cosa aquí, que 81 00:03:53,100 --> 00:03:56,490 no necesariamente crear un mutuo cadena exclusiva de todo. 82 00:03:56,490 --> 00:04:00,890 No es más que la expresión allí con Boole 83 00:04:00,890 --> 00:04:05,040 expresión 3-- esa es la mutuamente excluyente con la otra persona. 84 00:04:05,040 --> 00:04:07,580 Así que es posible, y a veces muy útil, 85 00:04:07,580 --> 00:04:11,772 como ya he dicho, para crear una cadena de ramas no se excluyen mutuamente. 86 00:04:11,772 --> 00:04:14,230 Echemos un vistazo a una diferente tipo de condicional, que 87 00:04:14,230 --> 00:04:17,392 usted no ha visto antes en Scratch. 88 00:04:17,392 --> 00:04:19,369 Hay algo que se llama la sentencia switch. 89 00:04:19,369 --> 00:04:21,410 La sentencia switch es muy guay porque es 90 00:04:21,410 --> 00:04:25,930 una sentencia condicional que permite especificar los casos distintos, 91 00:04:25,930 --> 00:04:28,926 en lugar de depender de Boole expresiones para tomar decisiones por usted. 92 00:04:28,926 --> 00:04:31,050 Así, por ejemplo, digamos que tengo este programa, 93 00:04:31,050 --> 00:04:34,110 y yo estoy pidiendo al usuario hacer aportaciones a mí. 94 00:04:34,110 --> 00:04:37,170 Por eso digo, int x = Obtener Int (), y si usted aún no está familiarizado, 95 00:04:37,170 --> 00:04:40,190 conseguir int es una función que es También se incluye en la biblioteca CS50, 96 00:04:40,190 --> 00:04:44,610 así que si usted #include CS50.H tendrás Obtener acceso a Int () y la totalidad de su 97 00:04:44,610 --> 00:04:46,840 cousins-- GetFloat, GetString, y así sucesivamente. 98 00:04:46,840 --> 00:04:52,590 Básicamente una consigue la función para cada tipo de datos que ya hemos discutido. 99 00:04:52,590 --> 00:04:53,970 >> Así Int x es igual getInt. 100 00:04:53,970 --> 00:04:56,390 Básicamente lo que está pasando es que estoy en la terminal. 101 00:04:56,390 --> 00:04:58,790 Estoy pidiendo al usuario que escriba un número. 102 00:04:58,790 --> 00:05:02,300 >> Y aquí estoy cambiando lo que estoy haciendo, en función 103 00:05:02,300 --> 00:05:05,060 en lo que el usuario escribió en el indicador. 104 00:05:05,060 --> 00:05:09,147 Así que si escriben una, imprimo una. 105 00:05:09,147 --> 00:05:09,855 Y entonces me rompo. 106 00:05:09,855 --> 00:05:12,590 107 00:05:12,590 --> 00:05:15,510 Si tipo dos, puedo imprimir a dos. 108 00:05:15,510 --> 00:05:16,690 Y entonces me rompo. 109 00:05:16,690 --> 00:05:19,060 Es importante romper entre cada caso 110 00:05:19,060 --> 00:05:20,890 porque de lo contrario se le caen a través de. 111 00:05:20,890 --> 00:05:23,380 Así que si yo no tenía ninguna rompe allí, y el usuario 112 00:05:23,380 --> 00:05:31,380 solo con tipo, lo que sucedería es que imprimiría una, dos, tres, lo siento. 113 00:05:31,380 --> 00:05:33,099 Eso es un poco extraño comportamiento, ¿no? 114 00:05:33,099 --> 00:05:33,890 Se podría pensar así. 115 00:05:33,890 --> 00:05:36,480 Pero en realidad hay algunos casos en que esto podría ser una cosa bastante útil. 116 00:05:36,480 --> 00:05:39,730 Así que aquí está otro ejemplo de un interruptor declaración donde Omito los descansos. 117 00:05:39,730 --> 00:05:42,030 Pero lo hago a propósito. 118 00:05:42,030 --> 00:05:43,030 >> Entonces, ¿qué pasa aquí? 119 00:05:43,030 --> 00:05:43,821 Piensa por un segundo. 120 00:05:43,821 --> 00:05:45,960 Usted puede incluso desear para pausar el video. 121 00:05:45,960 --> 00:05:48,230 >> Lo que sucede aquí si el usuario escribe cuatro? 122 00:05:48,230 --> 00:05:51,190 123 00:05:51,190 --> 00:05:53,860 Así que le he pedido al usuario para la entrada. 124 00:05:53,860 --> 00:05:56,560 Y proporcionan el valor 4. 125 00:05:56,560 --> 00:05:59,545 Lo que se imprime cuando hago eso? 126 00:05:59,545 --> 00:06:02,170 En la diapositiva anterior, había descansos entre todos los casos. 127 00:06:02,170 --> 00:06:04,750 Y así lo haría solo imprimir cuatro y luego se detiene. 128 00:06:04,750 --> 00:06:06,610 Pero en este caso, no lo hará. 129 00:06:06,610 --> 00:06:10,700 ¿Qué va a pasar es que caerá a través de cada caso. 130 00:06:10,700 --> 00:06:14,890 >> Así que en este caso he organizado mis casos de tal manera que si el usuario 4, 131 00:06:14,890 --> 00:06:20,070 Voy a imprimir cuatro, tres, dos, uno, Blast Off. 132 00:06:20,070 --> 00:06:22,780 Y si ellos escriben 5, me gustaría empezar a las cinco y hacer lo mismo. 133 00:06:22,780 --> 00:06:26,410 Si escriben 1, lo haría acaba de hacer uno, despegue. 134 00:06:26,410 --> 00:06:28,715 >> Así que en este caso, yo estoy usando un interruptor de tipo de hábilmente lo 135 00:06:28,715 --> 00:06:30,804 que tengo la intención de caer a través de todos los casos. 136 00:06:30,804 --> 00:06:33,720 Pero en general, usted está probablemente va a quiere romper entre todos ellos, 137 00:06:33,720 --> 00:06:36,090 a menos que tenga una situación como éste, donde estás 138 00:06:36,090 --> 00:06:40,081 tipo de aprovechar el hecho de que usted va a caen a través de los casos, sin un descanso. 139 00:06:40,081 --> 00:06:42,830 Así que ese es el segundo de los principales tipos de sentencias condicionales. 140 00:06:42,830 --> 00:06:47,139 La última de ellas es: ¿Así que dos fragmentos de código C aquí. 141 00:06:47,139 --> 00:06:48,680 Uno a la izquierda y otro a la derecha. 142 00:06:48,680 --> 00:06:52,330 El de la izquierda debe probablemente será bastante familiar para usted. 143 00:06:52,330 --> 00:06:55,110 >> Tengo Int x. 144 00:06:55,110 --> 00:06:57,167 Y yo probablemente debería han pedido al usuario 145 00:06:57,167 --> 00:07:00,250 para-- esto debe probablemente Int x es igual a getInt, o algo así. 146 00:07:00,250 --> 00:07:03,030 147 00:07:03,030 --> 00:07:05,240 Y luego estoy de tomar una decisión. 148 00:07:05,240 --> 00:07:11,700 Si alguna expresión booleana es cierto, asigne el valor x 5. 149 00:07:11,700 --> 00:07:13,590 De lo contrario, asigne el valor x 6. 150 00:07:13,590 --> 00:07:16,548 >> La de la izquierda, probablemente debería haber bastante familiar de nuestra discusión 151 00:07:16,548 --> 00:07:18,160 de Else Si hace un momento. 152 00:07:18,160 --> 00:07:20,535 ¿Le sorprendería saber que la línea a la derecha 153 00:07:20,535 --> 00:07:22,310 hace exactamente lo mismo? 154 00:07:22,310 --> 00:07:26,140 >> Así que esto se llama:? O, a veces llamado el operador ternario. 155 00:07:26,140 --> 00:07:27,450 Y es muy bueno. 156 00:07:27,450 --> 00:07:29,110 Por lo general es utilizado como un truco lindo. 157 00:07:29,110 --> 00:07:35,777 >> Pero lo que le permite hacer es simular un caso Else con muy pequeña, 158 00:07:35,777 --> 00:07:37,610 realmente trivial corta ramas condicionales. 159 00:07:37,610 --> 00:07:41,470 Por lo general, no debería utilizar:? Si tenía seis líneas de código entre cada serie 160 00:07:41,470 --> 00:07:42,569 llaves de rizado. 161 00:07:42,569 --> 00:07:44,360 Pero si no eres más que tomar una decisión rápida, 162 00:07:44,360 --> 00:07:47,520 si vas a hacer una cosa o el otro y es muy simple, 163 00:07:47,520 --> 00:07:52,240 esto podría ser un ejemplo de cómo hacerlo con: el operador ternario. 164 00:07:52,240 --> 00:07:56,940 Así Int x es igual a la expresión? 165 00:07:56,940 --> 00:07:59,470 La cosa después de la pregunta marca es de lo que x valor 166 00:07:59,470 --> 00:08:02,690 será si la expresión es verdadera. 167 00:08:02,690 --> 00:08:05,330 >> La cosa después de la colon es qué valor de x 168 00:08:05,330 --> 00:08:07,990 sería si la expresión es falsa. 169 00:08:07,990 --> 00:08:11,510 Así que me pregunto, Es cierto la expresión? 170 00:08:11,510 --> 00:08:13,870 Si es así, asignar el valor x 5. 171 00:08:13,870 --> 00:08:16,619 Si no lo es, asignar el valor x 6. 172 00:08:16,619 --> 00:08:17,410 Una vez más, como he dicho. 173 00:08:17,410 --> 00:08:18,670 Esto es por lo general sólo un truco lindo. 174 00:08:18,670 --> 00:08:20,430 Y a veces si se queda muy cómodo con él, 175 00:08:20,430 --> 00:08:22,820 que va a hacer esto porque lo que parece una especie de fresco en sus programas. 176 00:08:22,820 --> 00:08:25,710 En general estoy de presentarlo a ahora por lo que está familiarizado con él 177 00:08:25,710 --> 00:08:26,990 si lo ves. 178 00:08:26,990 --> 00:08:30,080 Pero sin duda sabe que no tiene escribir en cualquiera de su código. 179 00:08:30,080 --> 00:08:33,246 Pero es algo que esté familiarizado con, ya que sin duda encuentra 180 00:08:33,246 --> 00:08:36,130 fragmentos de código por aquí y por allí donde esto: la sintaxis, 181 00:08:36,130 --> 00:08:39,120 También conocido como el operador ternario, se utiliza. 182 00:08:39,120 --> 00:08:40,960 >> Resumen Así rápida en lo son condicionales, 183 00:08:40,960 --> 00:08:44,210 y ¿cuáles son las opciones disponibles a usted en C. Si Usted tiene y si otra cosa, 184 00:08:44,210 --> 00:08:46,860 y si otra cosa si, etcétera. 185 00:08:46,860 --> 00:08:50,880 Puede utilizar expresiones booleanas para aquellos que tomar decisiones. 186 00:08:50,880 --> 00:08:53,720 >> Con sentencias switch utiliza casos discretos para tomar decisiones. 187 00:08:53,720 --> 00:08:57,540 Se podría decir específicamente, si es uno, o si se trata de dos, o si se trata de tres, 188 00:08:57,540 --> 00:09:00,870 Voy a hacer esta cosa, o esta cosa, o esta cosa. 189 00:09:00,870 --> 00:09:04,660 Y: ¿puede ser utilizado para reemplazar ramas if-else muy simples, 190 00:09:04,660 --> 00:09:08,490 o si-else cadenas para hacer su código de mirar un poco de fantasía. 191 00:09:08,490 --> 00:09:09,250 >> Soy Doug Lloyd. 192 00:09:09,250 --> 00:09:11,410 Y esto es CS50. 193 00:09:11,410 --> 00:09:12,959