Hola y bienvenido. En esta conferencia, quiero hablar sobre la toma
de decisiones, específicamente las declaraciones if.
Entonces, el lenguaje de programación c proporciona
una capacidad de toma de decisiones general en forma de una declaración if.
Sabemos qué afirmaciones hay hasta este momento.
Así que ahora solo agregaremos una palabra clave delante y también la colocaremos entre paréntesis.
Entonces, lo que parece es algo como esto.
Si es una palabra clave y luego dentro de los paréntesis izquierdo
y derecho, tiene algo llamado expresión.
Sabemos qué son las expresiones y la diferencia entre declaraciones.
Esa expresión tiene que evaluarse como verdadera o falsa.
Y luego tienes una declaración de programa.
Y este es el tipo de declaración if más simple.
Entonces, si dices expresión y luego la declaración del programa,
en realidad podrías sustituir eso con un
pseudocódigo, algo como si no está lloviendo, iré a nadar.
Y si traduces ese pseudocódigo a c, el pseudocódigo no es
una sintaxis real,
es una forma de describir algo en código en el idioma inglés.
Entonces, si decimos una
declaración if en c, todo lo que haría es poner la condición entre paréntesis, no está lloviendo.
Y luego, después de la declaración if,
una sola declaración o varias declaraciones.
Si tiene varias declaraciones, las pondría entre llaves.
Pero en este
caso, tenemos una declaración. Entonces, dentro del cuerpo, la declaración if es que iré a nadar.
Entonces tiene que no estar lloviendo para poder ejecutar. Iré a nadar.
Por eso está en el flujo de control. En realidad, no siempre estás ejecutando Iré a nadar.
Depende de la condición y si es verdadera o falsa.
Por lo tanto, es posible que esté omitiendo el código en este caso. Entonces no tienes un proceso secuencial.
Entonces, la declaración if se usa para estipular la
ejecución de una declaración de programa basada en una condición específica, una
capacidad de toma de decisiones. Así que solo irás a nadar si no llueve.
Solo ejecutará el código en el cuerpo de la instrucción if si no está lloviendo.
Las llaves son necesarias para las declaraciones compuestas dentro del bloque if.
Entonces, por ejemplo, si te decían si no está lloviendo, voy a ir a nadar o
antes de que vayas a nadar, te pondrás el traje de baño,
te vestirás y luego irás a nadar.
Entonces tendrías que poner esos tirantes allí.
Y nuevamente, tendremos ejemplos específicos para mostrar eso.
Pero las llaves no son necesarias si solo tiene una sola declaración, son opcionales.
Puede proporcionarlos o no.
Por lo general, proporciono las llaves en todas mis declaraciones if solo por coherencia.
A continuación, se muestra un ejemplo de una declaración if común en el lenguaje de programación c.
En este caso, declaramos dos variables, una con nombre puntuación y otra con nombre grande.
La puntuación es 95, grande como 90.
Aquí solo tenemos una declaración simple en el
cuerpo y no tiene corchetes. Y básicamente, estamos diciendo que si la puntuación es mayor
que grande, la puntuación es 95. Entonces, si 95 es
mayor que 90, es una expresión booleana. Se evaluará como verdadero en este caso.
Entonces, lo que se mostrará en la pantalla es el premio gordo.
Y luego tenemos el mismo ejemplo, excepto que usamos las llaves
porque tenemos más de una declaración en el cuerpo de la declaración if.
Entonces, en el ejemplo inferior, si el puntaje es mayor
que grande, tenemos una llave izquierda para comenzar el bloque de la instrucción if,
y tenemos una llave final para terminar el bloque de la instrucción if.
Eso se refiere al cuerpo de la declaración if.
Entonces, en este caso, tenemos dos declaraciones. Primero vamos a incrementar la puntuación en
1, y luego mostraremos que ganas.
Así que observe la diferencia aquí, corchetes versus no corchetes.
Aún puede poner los corchetes en una sola declaración, son opcionales.
Pero si tiene varias declaraciones, los corchetes son obligatorios.
El corchete izquierdo significa el comienzo del
bloque, el corchete derecho significa el final del bloque.
Las declaraciones de If son bastante simples cuando son solo una elevación.
Las palabras clave de If son paréntesis a la izquierda y a la derecha, dentro de los paréntesis en una expresión.
Y cuando las declaraciones se vuelven más complicadas, esas expresiones pueden convertirse en expresiones múltiples.
Entonces puede comenzar a usar algunos de los operadores lógicos que
aprendimos en términos de que podemos usar la y o la o.
Entonces, si la puntuación es mayor que grande y se requiere
algo más.
Por lo tanto, podemos tener varias preguntas en una sola declaración if o podemos desglosarlas.
Pero este es un ejemplo básico de instrucción
if, de nuevo la sintaxis bastante básica,
no ve ningún punto y coma al final de
la instrucción if, el único al final de printfs.
Así que solo tienes los corchetes inicial y final.
Ahora también puede agregar una cláusula else a su declaración if.
Esto es apoyado por c. Entonces puedes extenderlo un
poco con una pequeña adición que te permite tener mucha más flexibilidad.
Entonces, por ejemplo, si dijéramos si la lluvia de hoy es
peor que la
lluvia de ayer, tomaré mi paraguas. De lo contrario, si no está
lloviendo tanto como ayer, me llevaré la chaqueta.
Entonces, el otro es decir lo que sucede cuando la pregunta
a la respuesta es falsa.
De lo contrario, tomaré mi chaqueta y luego me iré a trabajar.
Así que este es exactamente el tipo de toma de decisiones que proporciona la declaración if else.
Haz algo cuando sea verdad, también haz algo cuando sea falso.
Entonces tiene la palabra clave if, y luego, entre paréntesis, tiene su expresión booleana, algo que
se evalúa como verdadero o falso.
Luego tiene su declaración que se ejecuta la declaración uno si es verdadera.
De lo contrario, usa la palabra clave else.
Es opcional, no siempre es necesario proporcionar el otro. Solo si desea hacer algo
si la expresión booleana es falsa, diga la declaración dos.
Y nuevamente, en este caso, no tenemos corchetes dentro
del cuerpo del bloque if o el bloque else
porque solo tenemos declaraciones individuales.
Si tenemos más de una declaración dentro de cualquiera de esos
cuerpos, tenemos que proporcionar un corchete para comenzar y terminar.
Así que aquí hay un ejemplo de una declaración else con un if.
En este caso, determinaremos si un número es par o impar.
Entonces tenemos nuestra función principal que es donde entramos.
Y creamos un par de variables, una se llama número para probar, la otra se llama resto.
Ambos son de tipo int.
Los declaramos en la misma línea separándolos con comas.
Aún no los inicializamos.
En la siguiente línea de código, imprimiremos un resultado para pedirle al usuario que ingrese alguna información.
Luego usamos la función scanf.
Estamos leyendo un número entero, por lo que podemos hacer el porcentaje i o el porcentaje d.
Y no estamos leyendo una cadena ni ninguna palabra.
Así que vamos a poner el ampersand delante de la variable donde vamos a almacenar los datos.
Entonces, el usuario ingresará un número para probar.
Y luego también obtendremos el resto de lo que ingresaron por 2 porque eso
nos dirá
si algo es par o impar. Si puede dividir un número
por 2 y el resto es 0, eso significa
que es un número par. De lo contrario, es extraño.
La parte importante de este programa es la parte inferior donde usamos la condición.
Hasta este momento, se han ejecutado todas las líneas.
Pero cuando tenemos una declaración if y una condición entre paréntesis,
si el resto es igual a
cero y notarás que siempre tienes que usar los iguales iguales para
comparar, no usas iguales. Recuerde, igual es para
asignación, asignando datos a un valor. Igual a igual es para comparar números.
Estamos comparando una variable restante con cero.
Y si es cero, imprimiremos pares.
De lo contrario, la palabra clave else está en la siguiente línea, vamos a imprimir algo extraño.
Notará que no hay corchetes en el if o el else porque solo hay declaraciones individuales.
Ejecutemos esto y veamos cómo funciona en bloques de código.
Bueno, aquí está nuestro programa. Se describe, como acabo de mencionar, exactamente de la misma manera.
Simplemente imprimiremos pares o impares. Así que sigamos adelante y construyamos esto.
Y queremos asegurarnos de que no tengamos ningún error.
Tiene un par de feeds de línea adicionales aquí.
Ahora, cuando ejecutemos este programa, básicamente podremos tener una salida
para pares o impares.
Nos va a preguntar el número para realizar la prueba. Voy a ingresar 33, lo cual es extraño.
Dirá que el número es impar. Entonces es un programa bastante simple.
Lo importante aquí es que no está ejecutando cierto código.
O ejecutará la línea 19, si el resto es igual a 0.
Si no es así, en realidad vas a la línea 21. Y los corchetes nuevamente son opcionales.
Puede ponerlos allí,
y el IDE completará automáticamente por usted, lo cual es
bastante bueno.
Pero nuevamente, generalmente me gusta agregarlos porque son fáciles y hacen que
el código sea aún más legible.
Depende de su estilo de formato.
A algunas personas les gusta tener el corchete al principio de la declaración else, como este.
A algunos les gusta tenerlo en la otra línea, depende de cómo sea su formato.
Y, de hecho, esto se puede hacer automáticamente en el IDE formateando el código.
Pero esto funciona de la misma manera y es casi incluso más fácil de leer.
Y si alguna vez tiene que agregar más declaraciones,
puede agregarlas fácilmente y no tiene que preocuparse por agregar los corchetes.
Así que tengo el hábito de agregar corchetes.
Nuevamente, la otra cosa importante aquí es que esto es igual a igual.
No puedes hacer iguales. Si lo hace igual y ejecuta el programa, verá
que hay una gran diferencia. Entonces, una declaración
if else muy simple, muy, muy útil. Solo ejecutará la línea 19 si el resto es impar.
De lo contrario, ejecutará la línea 22.
Hablemos un poco más sobre una declaración else if.
Entonces también puedes tener otro. Si es así, hemos aprendido sobre si, hemos aprendido sobre más.
Puede manejar la toma de decisiones complejas adicionales agregando una declaración if a su cláusula else.
Entonces es como hacer una pregunta adicional.
En realidad, no va a ejecutar algo si la condición original es falsa, va
a hacer otra pregunta.
Entonces dice que si la expresión
1, tiene un código que se ejecutará si es cierto.
De lo contrario, de lo
contrario, dices si después de eso, que
es perfectamente legal. Esta es una instrucción if dentro de una instrucción else.
Luego ejecuta el programa dos. De lo contrario, ejecuta otra cosa.
Entonces, esto extiende la declaración if de una decisión lógica de dos valores a
una decisión lógica de tres valores.
Aquí estás haciendo dos preguntas.
Y si la pregunta de la primera respuesta es verdadera, ejecute
la declaración uno del programa.
Luego, hace su segunda pregunta, solo si la primera pregunta fue verdadera o
si la primera pregunta fue falsa.
Y si eso es cierto, entonces en realidad otro código ejecuta algo más.
Por lo tanto, tiene tres ramas
aquí esencialmente, tres líneas de código separadas que pueden ejecutarse o no.
Enunciado de programa 1, enunciado de programa 2 o enunciado de programa 3.
Puede reescribir este código para usar un else if.
En este momento, el if está en la línea separada, pero en realidad puede hacer algo como esto,
si la expresión uno, haga otra cosa si.
No tiene que ponerlo en una línea separada. Puede ser una sola línea
y luego puede tener otra más fuera de ella.
Lo único complicado de esto es que la cláusula else se ejecutará.
Y esto es lo mismo. Entonces, esta cláusula else se ejecutará
para los tres.
Entonces, es un poco confuso en
el primer ejemplo porque parece que el segundo más
solo se está ejecutando si el otro if
es falso.
Pero realmente se está ejecutando si la primera expresión también es falsa.
Si tuviera corchetes allí, podría haber anidado esas declaraciones if.
Y el exterior, el último más solo se ejecutaría en función
de la pregunta del segundo si la respuesta.
Entraremos en la anidación cuando hablemos de declaraciones if anidadas y bucles anidados.
Las sentencias if anidadas solo están colocando un lado if y if, y
debes tener cuidado donde está tu
cláusula else porque la else tiene que corresponder a la última sentencia if.
Aquí hay otro ejemplo en el que realmente intentaremos implementar la función de signo.
Devolveremos 1 0 o 1 negativo.
Así que esta es una evaluación de tres niveles aquí.
Lo que este programa está haciendo en la rutina principal es
que estamos creando un par de variables de tipo int, número y signo.
Hacemos que el usuario ingrese un número y lo almacenamos en la variable de número.
Y si el número es menor que 0, el signo será igual a menos 1.
De lo contrario, si el número es igual a 0, será 0.
De lo contrario, si ambos son falsos, su signo será igual a 1, lo que significa que es positivo.
Así que este es un ejemplo de cómo el else if puede ser muy útil.
Y puede tener varios otros if. Solo vemos uno allí, pero podríamos tener 100 si quisiéramos.
De lo contrario, si el número es igual a 2, de lo contrario, si el número es igual a 3, de lo contrario si el número es igual a 4.
Y también puede ver que los corchetes no se usan
aquí, pero los corchetes se usarán si tiene varias declaraciones dentro del cuerpo.
Y cuando use declaraciones if, también
debe notar que va a usar muchos operadores
lógicos y operadores de comparación y operadores relacionales.
Entonces estás usando el símbolo menos que aquí. Los operadores lógicos, recuerde, son
los símbolos de unión. Dos de ellos para y
o, y los operadores relacionales son donde se comparan los valores.
Entonces, cuando estás haciendo cosas como menor o menor que igual o mayor que.
Esos se usan bastante cuando usa números en sus expresiones de declaración if.
Cuando usa el ampersand y comercial, en realidad está haciendo varias preguntas.
Si esto es cierto y esto es cierto o si esto es cierto o.
También es una forma de reducir otras declaraciones else if.
Entonces, podría reescribir este código aquí mismo si el número es menor que 0.
Y también, si quisieras tener
el letrero, en realidad no podrías como está ahora.
Pero si pudieras poner un ampersand y puedes decir si el número es
menor que 0 y es igual a 0, entonces el
signo es negativo 1 y 0. Quiero decir que no puede hacer eso
específicamente, pero puede ver cómo podría agregar varias preguntas aquí.
Así que vamos a tener un desafío específico en el que vamos a escribir un programa que use declaraciones if.
Estos son algunos buenos ejemplos. Querrá poner estos ejemplos dentro de su IDE y ver qué sucede.
Pero el else if es nuevamente una forma de hacer múltiples preguntas.
Declaración if else anidada.
Las instrucciones if l anidadas significa que puede usar una instrucción if o una instrucción
else if dentro de otra instrucción if o else if.
Por eso se le llama anidamiento.
Puede usar varias cosas adentro y puede seguir haciéndolo una y otra y otra vez.
No hay límite en la cantidad de anidamientos que no ha visto.
Entonces la sintaxis se parece a esto.
Si una expresión booleana es igual a verdadera,
entonces dentro de ella y cuando anida, por lo general, desea usar los corchetes.
Aunque no es necesario para las declaraciones individuales porque lo hace mucho más legible.
Entonces, si la expresión booleana 1 es verdadera, entonces
dentro de usted dice si la expresión booleana 2 es verdadera.
En realidad, no se ejecutaría si la expresión booleana 2 a menos
que la expresión booleana 1 fuera verdadera.
Y luego, dentro del cuerpo de la expresión booleana 2, ejecutarías código si eso es cierto.
Entonces, un ejemplo de una declaración if anidada se vería así.
Si el juego termina es igual a 0 y luego adentro, si el jugador que se mueve es igual a ti, entonces
tienes una impresión.
La clave aquí es notar que no hay corchetes,
y es un poco más difícil de seguir. La única forma de seguir esto es a través
de la sangría, que es otra cosa que desea hacer cuando escribe declaraciones if en bloques de código.
Siempre desea sangrar el bloque porque facilita la lectura.
Imagínese si esto no tuviera la
sangría, lo difícil que sería hacer coincidir el else y el if.
Por lo tanto, use sangría pero probablemente también use corchetes, los corchetes ayudan a que sea aún más legible.
Y recuerde, la legibilidad es un gran problema porque la legibilidad lo ayuda a encontrar y corregir sus errores mucho más rápido.
Entonces, en este caso, solo ejecutaremos su movimiento impreso en la pantalla si el
jugador que se moverá es igual a u y el final del juego es igual a 0.
Solo ejecutaremos mi movimiento que se muestra en la pantalla si
el juego es igual a 0 pero el jugador a mover no es igual a u.
Y luego, por último, solo vamos a ejecutar el juego ha
terminado si el juego no es igual a 0.
Entonces tenemos tres condiciones aquí
para imprimir tres declaraciones diferentes.
Y en realidad podrías escribir si el juego termina es
igual a 0 y ampersand ampersand, el jugador que se moverá es igual a u.
Pero el problema con eso sería tu otra cosa, mi jugada podría no
ser la correcta porque todavía tienes que comparar jugador con jugada.
Entonces, hay ocasiones en las que puede usar los símbolos de unión para simplificar el
código, hay ocasiones en las que no puede. En este caso, no puede porque
el primer else está dentro del if anidado.
Así que el anidamiento es bastante aplicable, y lo usará,
así que familiarícese con él. Nuevamente, la sintaxis de la instrucción if es muy sencilla.
La expresión booleana dentro y luego use corchetes para declaraciones individuales.
De lo contrario, usa corchetes.
No usa corchetes para estados individuales. De lo contrario, utilice corchetes.
También hay un tercer tipo
de forma de hacer preguntas en su programa. Esto se llama operador condicional, y
hablamos de cuando hablamos de operadores, pero necesita
un poco más de comprensión.
Entonces, el operador condicional es un operador muy exclusivo.
Es diferente a todos los demás operadores de c.
La mayoría de los operadores en c son unarios o binarios.
Unario significa que los operadores toman un solo argumento o un solo operando.
Binario significa que tienen operandos en ambos lados.
Entonces, el operador más es un operador binario porque hace 5 más 3,
dos operandos.
El negativo es un operador unario porque dices como negativo 3.
Bueno, hay una tercera opción, hay un operador ternario, que toma tres operandos.
Y este es el operador condicional.
Tiene dos símbolos que se utilizan para denotar este operador, este operador condicional.
Es el signo de interrogación y los dos puntos.
Y realmente es equivalente a una declaración if else.
La forma en que se ve es que el primer operando se coloca antes del
signo de interrogación, esa sería la condición, la expresión booleana en los ejemplos anteriores.
Y luego, la segunda cosa entre el signo de interrogación y los dos
puntos sería básicamente el cuerpo de la declaración if si la declaración if fuera verdadera.
Y luego los dos puntos son el tercero, y
eso sería si la condición se evalúa como falsa, estaría ejecutando ese cuerpo
de código, así que es como el cuerpo de la declaración else.
Entonces, este operador de giro no es más que una declaración if else solo una notación abreviada,
puede escribirla mucho más rápido.
La diferencia aquí también es que no hay corchetes, por lo que solo puede tener
expresiones o declaraciones únicas dentro del cuerpo del después del signo de interrogación o después de los dos puntos.
Entonces, si el operador condicional se evalúa como una
de dos expresiones dependiendo de si la expresión lógica corresponde a,
dependiendo de si la condición es verdadera.
Si la condición es falsa, se evalúa la expresión 2.
De nuevo, se comporta como una declaración if else.
Observe también cómo se organiza el operador en relación con los operandos.
El carácter de signo de interrogación sigue la condición de expresión lógica.
A la derecha del signo de interrogación están los dos operandos, la expresión uno y la expresión dos.
Representan las opciones.
El valor que resulte de la operación será el valor de la expresión uno
si la condición se evalúa como verdadera.
Y luego el valor de la expresión dos si es falso. Así que exactamente lo que dije si más.
Veamos un ejemplo. Parece divertido leerlo, pero lo que
esto dice es que si x es igual a y es
mayor que 7,
entonces, ¿qué está haciendo esto? ¿Está haciendo una tarea?
X es igual a y. Entonces, si x es 5 e y es
9, dirá que si x es mayor que 9, entonces
establecerá el número en 25 x. De lo contrario, establecerá x en 50.
Entonces es un poco confuso leerlo primero.
Esto da como resultado que x se establezca en 25 si y es mayor que 7 o en 50 en caso contrario.
Por tanto, es una forma sencilla de realizar una asignación de la expresión.
X es igual a y es mayor que 7.
Si y es mayor que 7, x es igual a 25; de lo contrario, 50.
Por eso la x es igual a que hay pornografía.
Entonces, el operador ternario y las condiciones están en el lado derecho de la asignación,
y así es como se usa normalmente. Dices que x es igual, el resultado de
ese operador ternario.
Entonces, el operador ternario completo es y mayor que 7. Entonces solo dice si y es mayor que
7, 25, de lo contrario 50. Y luego le asigna eso a x.
Y así es como se usa normalmente. Es lo mismo
que decir usando una declaración if. Si y es mayor que 7, x es igual a 25 en caso contrario x es igual a 50.
Pero es mucho menos código.
La limitación de este operador condicional es
que solo puede tener dos variables escritas usando el operador condicional, un
mínimo máximo.
No puedes hacer un montón de ellos. Entonces es un poco limitante. Por lo general, se usa para tareas.
Así que una conferencia bastante larga, muchos ejemplos diferentes.
Esto será más aplicable cuando hagamos nuestro desafío.
Pero si las declaraciones se van a utilizar mucho,
y son muy, muy fáciles de aprender. Antes de que te
des cuenta, conocerás la sintaxis como el
dorso de la mano, paréntesis, corchetes, si no, palabras clave.
Y luego, ocasionalmente, usará este operador condicional.
Una vez más, eso es tal vez a medida que avanza más en c, comenzará a darse cuenta
de esto, si la declaración me ha tomado mucho tiempo para
escribir, tal vez pueda escribir en una sola línea usando el operador condicional con
mi signo de interrogación y mis dos puntos.
Nuevamente, muy útil para asignar variables basadas en condiciones. Gracias.