El flujo de código condicional es la capacidad de cambiar la forma en la que se comporta un fragmento de código en función en ciertas condiciones. En tales situaciones puedes usar las sentencias if. Una declaración IF es una construcción de programación que te permite tomar decisiones basadas en ciertas condiciones. Te ayuda a controlar el flujo de tu programa al ejecutar distintos bloques de código dependiendo de si una condición es verdadera o falsa. La sentencia if también se conoce como una sentencia de toma de decisiones, ya que toma una decisión sobre la base de una condición o expresión dada.
Las estructuras de control nos permiten administrar y controlar el flujo de información a través de nuestra aplicación. Una de las estructuras de control más básicas que tenemos en todos los lenguajes de programación es la conocida como 'if' o 'if - else'. Esto significa que son decisiones que se van a tomar a lo largo del programa dependiendo del valor que tenga determinada variable.
Sentencias If Básicas
Para usar una condición IF, normalmente comienzas con la palabra clave "IF" seguida de una condición entre paréntesis. La condición es una expresión que se evalúa como verdadera o falsa. Si la condición es verdadera, se ejecuta el bloque de código que sigue a la declaración IF. Si la condición de una declaración IF es falsa, se omite el bloque de código correspondiente y el programa continúa con la siguiente instrucción después de la declaración IF.
El bloque de código dentro de la instrucción if que se ejecuta es la condición evaluada como true. Si el código entre el paréntesis de la sentencia if es true, todo dentro de las llaves es ejecutado. En este caso, si una condición evalúa a true, el código ejecuta la función correspondiente, por ejemplo, mostrando un mensaje como "Statement is True!". En la primera forma de la sintaxis, si expression es true (distinto de cero), statement se ejecuta. Si expression es false, statement se omite. Hay que tener en cuenta que la cláusula else de la sentencia if no es obligatoria. En caso de que no se cumplan las condiciones dentro del if() (condiciones que devuelvan un FALSE), no sucederá nada. Si omites la parte ELSE, el programa simplemente ejecutará el bloque de código bajo la declaración IF cuando la condición sea verdadera.
Sentencias If...Else
En una sentencia if...else, si el código en el paréntesis de la sentencia if es true, el código dentro de las llaves es ejecutado. Pero si la sentencia dentro del paréntesis es falso, todo el código dentro de las llaves de la sentencia else es ejecutada en su lugar. En la segunda forma de sintaxis, que usa else, se ejecuta el segundo statement si expression es false. Pero también esta estructura de control tiene una variante más que nos permite ejecutar acciones si es que la condición no se cumple, como es este caso cuando tenemos una estructura de tipo 'if - else'. Es decir, si la condición se cumple, entonces ejecuta acciones. De lo contrario, ejecuta otro "set" de acciones. En algunos casos, puedes especificar una acción alternativa usando una declaración ELSE.
Lea también: Longitud del RFC para personas morales en México
Sentencias If...Else Anidadas
La sentencia if...else permite elegir entre dos posibilidades. Los condicionales if e if-else pueden anidarse, de tal forma que dentro de un bloque de sentencias puede incluirse otro if o if-else. Sí, puedes anidar condiciones IF dentro de otras al incluir una declaración IF dentro de otra. Esto se conoce como condiciones IF anidadas.
Una segunda sentencia if...else es anidada dentro de la sentencia de la primera sentencia if..else. Al anidar if instrucciones y else cláusulas, use llaves para agrupar las instrucciones y cláusulas en instrucciones compuestas que aclaran la intención. La else cláusula está asociada a la instrucción interna if. Las llaves que rodean la instrucción interna if hacen que la else cláusula forme parte de la instrucción externa if.
Si bien el anidamiento funciona, no se recomienda cuando es demasiado profundo. El nivel de anidamiento queda a criterio del programador, pero si éste es demasiado profundo podría provocar problemas de eficiencia y legibilidad en el código. Un anidamiento excesivo puede dificultar la lectura, comprensión y mantenimiento del código. Cuando se utiliza anidamiento de este tipo de estructuras, es necesario poner especial atención en saber a qué if está asociada una cláusula else.
Sentencias Else If (o Elif)
El condicional IF-ELSEIF es una evolución de los condicionales IF y IF-ELSE, que nos permite evaluar múltiples condiciones y ejecuta diferentes bloques de código en función del resultado de cada condición. Sentencias else...if son una alternativa a una cadena de sentencias if. El condicional IF-ELSEIF es una forma de evitar el anidamiento, mediante una forma de sintaxis más cómoda y fácil de leer. En este caso, puedes usar condiciones elif, que son la abreviatura de "else if". Una declaración elif te permite probar condiciones adicionales si la condición anterior de IF o elif es falsa.
Si la condición de la sentencia if se evalúa a false, la condición para la sentencia else...if es revisada. Si la condición evalúa a true, el código dentro de las llaves de la sentencia else...if se ejecuta.
Lea también: Funcionamiento del RFC en México
Muchos lenguajes proporcionan una estructura IF-ELSEIF. El condicional IF-ELSEIF es una estructura de control muy potente y muy legible, que nos permite tomar decisiones múltiples en función de diferentes condiciones. Lo único que puede causar un poco de “lio” al principio es entender que si ejecutas un ELSEIF, las condiciones anteriores ya han sido descartadas. Este bucle, en el caso de C++, C#, Java, JavaScript y Kotlin, por ejemplo, tendría la siguiente forma. Por ejemplo, en Python este mismo condicional tendría la siguiente forma, mientras que, por ejemplo, en VB quedaría de otra manera.
Veamos un ejemplo de condicional IF-ELSEIF. Supongamos que tenemos una medición de la temperatura ambiente, y queremos mostrar un resultado en función de su valor. Si es mayor que 30º, es que hace calor 🔥. Si es entre 15º y 30º, hace buen tiempo 🌤️. Si es menor de 15º, hace frío ❄️. Analicemos lo que queremos hacer: Un primer IF comprueba si la temperatura es mayor de 30º 🔥. Un segundo ELSEIF comprueba que la temperatura es mayor de 15º. Como ya hemos descartado que sea mayor que 30º, este punto se ejecutará la temperatura está entre 15-30º 🌤️. El último ELSE se ejecutará únicamente si la temperatura es menor de 15 ❄️.
Operadores de Comparación
Sí, puedes usar operadores de comparación como "==" (igual a), "!=" (distinto de), "<" (menor que), ">" (mayor que), "<= menor="" o="" igual="" y="">=" (mayor o igual que) en una declaración IF. Observe también la condición en el paréntesis de la sentencia if: n == 3. Esta condición compara n y el número 3. == es el operador comparación, y es una de varias operaciones de comparación C.
| OPERATOR | NAME | USAGE | RESULT |
|---|---|---|---|
| == | Equal To | a == b | True if a is equal to b, false otherwise |
| != | Not Equal To | a != b | True if a is not equal to b, false otherwise |
| > | Greater Than | a > b | True if a is greater than b, false otherwise |
| >= | Greater Than or Equal To | a >= b | True if a is greater than or equal to b, false otherwise |
| < | Less Than | a < b | True if a is less than b, false otherwise |
| <= | Less Than or Equal To | a <= b | True if a is less than or equal to b, false otherwise |
Operadores Lógicos
Es posible que deseemos ejecutar un poco de código si algo no es cierto, o si dos cosas son verdaderas. Sí, puedes incluir múltiples condiciones en una declaración IF utilizando operadores lógicos como "and" y "or". Puedes combinar múltiples condiciones utilizando operadores lógicos como "and" y "or". El operador "and" requiere que todas las condiciones sean verdaderas para que la condición general sea verdadera, mientras que el operador "or" requiere al menos una condición verdadera para que la condición general sea verdadera. Por ejemplo, una expresión puede indicar que "n is equal to 5 and m is equal to 10!". Sí, puedes verificar múltiples condiciones simultáneamente combinando operadores lógicos dentro de la declaración IF. Usar operadores lógicos como "and" y "or" te permite especificar múltiples condiciones que deben cumplirse para que la condición general sea verdadera.
Evaluación de Cortocircuito
La evaluación de cortocircuito es un comportamiento que exhiben algunos lenguajes de programación al evaluar expresiones lógicas que implican los operadores "and" y "or". En la evaluación de cortocircuito, el segundo operando de "and" se evalúa solo si el primer operando es verdadero, ya que la expresión general solo puede ser verdadera si ambos operandos son verdaderos. De manera similar, en la evaluación de cortocircuito, el segundo operando de "or" solo se evalúa si el primer operando es falso, ya que la expresión general solo puede ser verdadera si al menos un operando es verdadero.
Lea también: Número de letras y números en el RFC
Consideraciones sobre la Evaluación Booleana
La condición dentro de una declaración IF puede involucrar variables, operaciones aritméticas, llamadas a funciones u otras expresiones que puedan ser evaluadas como booleanas. En C, como en otros lenguajes de programación, puede usar sentencias que evalúan como verdadero o falso en lugar de usar los valores booleanos true o false directamente. Por diseño, 0 es falso, y por convención, 1 es verdadero.
Una nota importante sobre las comparaciones C: cada comparación verifica si algo es verdadero o falso, pero eso solo es una verdad a medias. C es muy ligero y cercano al hardware en el que se está ejecutando.
Otros Usos y Buenas Prácticas
Sí, puedes usar condiciones IF dentro de bucles para controlar el flujo del bucle según ciertas condiciones. Sí, puedes usar múltiples condiciones IF para verificar diferentes condiciones en la misma variable. Cada declaración IF se evaluará de manera independiente, sin importar los resultados de las condiciones IF previas. Esta estructura condicional puede ser vectorizada, de forma que podamos reunir en una sola fila un número elevado de estructuras de comparación la función ifelse(), cuyos argumentos de entrada serán la condición a evaluar, lo que sucede cuando se cumple y lo que no, que aplicará a cada elemento del vector de entrada. Todas estas estructuras no solo sirven para datos numéricos.
