Tema 5. Condicionales
Uso de operadores lógicos y de comparación para utilizar sentencias condicionales.
DATOS BOOLEANOS
Al comparar dos variables o utilizar operadores lógicos, el resultado será siempre un dato de tipo Boolean.
Tablas de verdad
Dadas dos variables lógicas, A y B, podemos definir los operadores básicos mediante tablas de verdad, donde el valor verdadero se representa con la letra V o bien con un 1, mientras que el valor falso se representa mediante la letra F o bien con un 0.
La tabla de verdad para la variable A sería
V
F
La tabla de verdad para la variable B sería
V
F
Negación
El operador negación aplicado a una variable (unario) se representa con ¬ y devuelve el valor contrario. Equivalente a NO.
V
F
F
V
Conjunción
La conjunción entre dos variables se representa con ∧ y devuelve verdadero únicamente cuando ambas variables valen verdadero. Equivalente a Y.
V
V
V
V
F
F
F
V
F
F
F
F
Disyunción
La disyunción entre dos variables se representa con ∨ y devuelve verdadero cuando al menos una de las variables lógicas vale verdadero. Equivalente a O.
V
V
V
V
F
V
F
V
F
F
F
Operadores lógicos
Los operadores lógicos son aquellos que nos permiten implementar las tablas de verdad en código Kotlin:
Negación (NOT)
Se utiliza el operador "!
" para la negación:
Conjunción (AND)
Se utiliza el operador "&&
" para la conjunción:
Disyunción (OR)
Se utiliza el operador "||
" para la disyunción:
Operadores de comparación
Los operadores de comparación nos permiten comparar datos y obtener resultados booleanos:
Operador
Significado
>
Estrictamente mayor
>=
Mayor o igual
<
Estrictamente menor
<=
Menor o igual
==
Igual
!=
Diferente
Como pueden ver en el ejemplo superior, en Kotlin no se pueden comparar datos de distintos tipos.
De esta manera se evitan comportamientos inesperados que sí que se dan en lenguajes como Python o Javascript.
IF / ELSE IF / ELSE
if
Cuando queremos comprobar si se cumple alguna condición, utilizamos el operador de decisión if
. SOLO SE EJECUTA SI EL RESULTADO DE LA CONDICIÓN ES TRUE. La sintaxis que debemos seguir es la siguiente:
else
En un bloque if
, si no se cumple la condición, no se ejecuta el código. Lo normal es que queramos que, si no se cumple la condición, se ejecute un bloque de código diferente. Para ello se utiliza el bloque else
.
else if
También puede darse el caso de que existan más de dos escenarios, para ello utilizamos un bloque else if
que presenta una segunda condición que, de no cumplirse la primera, será comprobada antes de saltar al bloque else
.
La forma en que están escritos los ejemplos superiores es la forma idiomática (por convenio) de escribir éste tipo de bloques:
Espacio entre el if/else if/else y los paréntesis.
Espacio entre los paréntesis y la llave.
La llave se cierra en una nueva linea.
El siguiente bloque se escribe en la misma linea que la llave de cierre.
Si solo hay una sentencia, no se utiliza llave para el bloque else.
Un ejemplo de su uso podría ser:
WHEN
Se puede dar el caso de que necesitemos ejecutar un bloque de código en función del valor de una variable o del valor que devuelva una sentencia.
Para evitar la repetición de bloques if
con la misma condición y cambiando el valor, se implementó el bloque condicional when
. Su sintaxis es la siguiente:
Un ejemplo de su aplicación puede ser:
Los bloques if
y when
se pueden anidar unos dentro de otros, llegando a alcanzar estructuras muy complejas y poderosas.
Last updated