Victor Alberto Rodriguez Monterrosa
me costo este jaja
Los operadores lógicos en Kotlin te permiten tomar decisiones dentro de tu programa evaluando expresiones que devuelven true o false. Son la base para validar datos, controlar flujos y construir lógica de negocio en cualquier aplicación.
Aquí vas a entender cómo funcionan los operadores de comparación, los conectores lógicos and, or y not, y cómo combinarlos para resolver casos reales como validar un email o detectar contraseñas problemáticas.
¿Qué son los operadores lógicos y para qué sirven?
Los operadores lógicos evalúan condiciones y devuelven un resultado booleano: verdadero o falso. Con ese resultado tu programa decide qué camino tomar [0:08].
En Kotlin, los más comunes se agrupan en tres familias:
>, <, >=, <=, ==, !=.&& (and), || (or), ! (not).contains(), length.¿Qué devuelve un operador lógico en Kotlin? Devuelve un valor de tipo
Boolean, es decir,trueofalse, que puedes guardar en una variable o usar dentro de unif.
¿Cómo comparo valores con mayor que, menor que e igual?
Imagina que tienes tres variables iniciales para una bandeja de entrada [1:05]:
kotlin val emailsRecibidos = 15 val emailsEnviados = 10 val limiteEmails = 20
Con estas, puedes construir comparaciones que se almacenan en variables booleanas.
¿Cómo verifico si tengo emails con el operador mayor que?
El operador > evalúa si un número supera a otro [1:33]:
kotlin val tieneEmails = emailsRecibidos > 0 println("Tiene emails: $tieneEmails")
Como 15 es mayor que 0, el resultado es true. Si cambias la comparación a 15 > 16, obtendrás false.
¿Cómo uso mayor o igual y comparación de igualdad?
El operador >= te ayuda a saber si alcanzaste un límite [2:42]:
kotlin val excedeEnviados = emailsEnviados >= limiteEmails
Si emailsEnviados es 20 y limiteEmails es 20, el resultado es true porque 20 sí es mayor o igual a 20.
Para comparar igualdad usa ==, y para diferencia usa != [3:55]:
kotlin val sonIguales = emailsRecibidos == emailsEnviados val sonDiferentes = emailsRecibidos != emailsEnviados
¿Cuál es la diferencia entre = y == en Kotlin? Un solo
=asigna un valor a una variable. Dos==comparan dos valores y devuelventrueofalse.
¿Cómo combino condiciones con and, or y not?
Los operadores lógicos te permiten unir varias expresiones para tomar decisiones más complejas. Aquí entran en juego validaciones reales, como verificar un email o una contraseña.
¿Cómo valido un email con el operador and?
Los Strings en Kotlin tienen funciones como contains() que devuelven booleanos [5:55]:
kotlin val email = "correo@example.com" val tieneArroba = email.contains("@") val tienePunto = email.contains(".") val esEmailValido = tieneArroba && tienePunto
El operador && (and) solo devuelve true cuando ambas condiciones se cumplen al mismo tiempo [7:05]. Si una falla, el resultado completo es false.
¿Cómo detecto una contraseña problemática con or?
El operador || (or) devuelve true cuando al menos una de las condiciones se cumple [8:25]:
kotlin val password = "1234" val passwordCorto = password.length < 6 val passwordLargo = password.length > 20 val passwordProblematico = passwordCorto || passwordLargo
Una contraseña con 4 caracteres entra como problemática porque cumple passwordCorto. Una de más de 20 caracteres también lo hace. Solo si ambas son falsas, el resultado final es false.
¿Para qué sirve el operador de negación not?
El operador ! invierte un valor booleano: convierte true en false y viceversa [10:08]:
kotlin val esEmailInvalido = !esEmailValido
Si tu email es válido, al aplicar la negación obtienes false para esEmailInvalido. Es útil cuando quieres expresar lo contrario de una condición que ya construiste.
¿Cómo aplico todo esto en una validación real de spam?
Un caso práctico: aceptar un email en tu bandeja solo si cumple varias reglas a la vez [11:24].
Las reglas son:
@ y ..test en el dominio.gratis ni urgente.kotlin val email = "hola@dominio.com" val asunto = "Reunión del lunes"
val esEmailValido = email.contains("@") && email.contains(".") && !email.contains("test") val noEsSpam = !asunto.contains("gratis") && !asunto.contains("urgente") val esAceptable = esEmailValido && noEsSpam
Fíjate cómo los && encadenan validaciones positivas y los ! excluyen palabras no deseadas. Al combinar ambos bloques con un and, obtienes una decisión final clara: el correo entra o se descarta.
Practica creando tus propias combinaciones cambiando los valores de email y asunto, y comparte en los comentarios qué validación adicional agregarías a tu bandeja.
Victor Alberto Rodriguez Monterrosa
me costo este jaja
Jimmy Alexander Tejedor Romero
Completado el reto !
Jason Ayosa Quiroz
println("------Ejercicio------") val email2: String = "Ejemplo@gmail.com" val asunto: String = "Adquiere esta super oferta URGENTE" // Validación de Email val tieneArroba2: Boolean = email2.contains("@") val tienePunto2: Boolean = email2.contains(".") // Verificar spam val tieneTest: Boolean = email2.contains("test") val emailValido2: Boolean = tieneArroba2 && tienePunto2 && !tieneTest val spam: Boolean = asunto.contains("GRATIS") || asunto.contains("URGENTE") println("El email es válido? $emailValido2") println("Tiene spam? ${spam}")
Alejandro Javier Viscarra Hernández
Excelente clase!
Samuel Pérez Peña
Salvador Isaías Juárez Alcántara
Martin Antonio Peralta Correa
Fer Gz
Lo hice de forma separada pero resulto: