¿Cómo funcionan las estructuras de control IF en Kotlin?
En el apasionante mundo de la programación, las estructuras de control son esenciales para dirigir el flujo del código basándonos en condiciones específicas. En Kotlin, el famoso lenguage de programación, el uso de la estructura if es fundamental para determinar qué bloques de código se ejecutan. Vamos a desglosar cómo podemos utilizar las estructuras if para robustecer tu código.
¿Cómo determinar si una variable está vacía?
Muchas veces necesitamos evaluar si ciertos valores existen o no antes de proceder con operaciones más complejas. Comencemos creando una variable:
var nombre ="María"
Utilizando la función isNotEmpty, podemos verificar si este nombre no está vacío y, basado en esa condición, ejecutar diferentes líneas de código:
if(nombre.isNotEmpty()){println("El largo de nuestra variable nombre es ${nombre.length}")}else{println("Error, la variable está vacía")}
Aquí, al ver que el nombre "María" no está vacío, se imprimiría: "El largo de nuestra variable nombre es 5".
¿Cómo simplificar un IF?
Kotlin nos permite hacer más legibles nuestros if cuando se trata de una sola línea de código. Eliminando las llaves, se puede implementar la misma lógica:
if(nombre.isNotEmpty())println("El largo de nuestra variable nombre es ${nombre.length}")elseprintln("Error, la variable está vacía")
El resultado sigue siendo el mismo, pero visualmente más limpio.
¿Cómo asignar un valor a una variable usando IF?
Supongamos que queremos asignar un mensaje dependiendo del largo del nombre:
val mensaje =if(nombre.length >4)"Tu nombre es largo"else"Tienes un nombre corto"println(mensaje)
Aquí, evaluamos el tamaño del nombre y asignamos un mensaje adecuado a la variable mensaje.
¿Cómo usar ELSEIF para múltiples condiciones?
A veces necesitamos más de una condición para cubrir todos los escenarios posibles. Ahí entra en juego elseif:
if(nombre.isEmpty()){println("El nombre está vacío")}elseif(nombre.length >4){println("Tu nombre es largo")}else{println("Tienes un nombre corto")}
Con esta estructura, podemos comprobar si el nombre está vacío, es largo o corto, obteniendo así una respuesta más precisa.
¿Por qué es importante la inmutabilidad en Kotlin?
¡Gran pregunta! Kotlin promueve el uso de variables inmutables (usando val) siempre que sea posible, para mejorar la legibilidad y robustez de nuestro código. En el contexto de if, si solo asignamos un valor una vez a una variable después de una evaluación, es ideal declararla como val.
val mensaje =if(nombre.isEmpty()){"El nombre está vacío"}elseif(nombre.length >4){"Tu nombre es largo"}else{"Tienes un nombre corto"}println(mensaje)
Utilizar val asegura que mensaje no podrá cambiarse accidentalmente a lo largo de tu código.
Conclusiones importantes
El uso efectivo de las estructuras de control if, else, y elseif puede definir claramente el flujo de tu programa y garantizar que se manejan adecuadamente todos los casos posibles. Al aplicar buenas prácticas como la inmutabilidad, no solo protegerás tu código de posibles errores, sino que también mejorarás su eficiencia y legibilidad. ¡Continúa evolucionando tus habilidades de programación y disfruta del camino de aprendizaje que has emprendido en Kotlin!
Para las personas que vengan de Java, los operadores ternarios tales como se conocen en java no existen en Kotlin, sin embargo, se puede utilizar un if de una sóla línea, por ejemplo:
//Java approachString nombre ="Joe";String message = nombre.equals("Joe")?"Hello "+ nombre :"I don't Know you";//Kotlin approachvar nombre ="Joe"var message =if(nombre.equals("Joe"))"Hello $nombre"else"I don't Know you"
Hay quienes dicen que no es un buen curso que no se que, que android que esto otro, recuerden, este NO es un curso de android con kotlin, como bien dice el titulo, es un curso de kotlin desde cero
Es un mecanismo que nos proporciona el lenguaje para evaluar condiciones que son true o false y así decidir que bloque de codigo se va a ejecutar.Para evaluar las condiciones con la sentencia if debemos aprender el concepto de operador condicional, este operador nos van a servir para evaluar condiciones, los operadores condicional son:> mayor que.< menor que.>= mayor o igual que.<= menor o igual que
== igualdad.!= desigualdad.
OPERADORES LOGICOS
Con los operadores logicos podremos comparar mas de una condición.&& operador "y": con este operador todas las condiciones tienen que ser verdaderas para que se cumpla la sentencia if.|| operador "o": basta que se cumpla una de las condiciones para que se cumpla la sentencia if.! operador "no"
fun main(args:Array<String>){ val nombre ="Gera"//Declaramos una variable y le asignamos un valor//Aqui empieza nuestra estructura de control IF//Tenemos una prueba logica (donde preguntamos si nombre no esta vacia)//Si esto es verdad [IF] entonces vamos a imprimer la cantidad de caracteres que hay en la variable nombre//Si esto no es verdad [else] vamos a imprimir un mensaje de error diciendo que la variable esta vaciaif(nombre.isNotEmpty()){println("El largo de nuestra variable nombre es ${nombre.length}")}else{println("Error, la variable se encuentra vacia")}}
A mi no me gusta dar malos comentarios, pero este curso es horriblemente básico.
Platzi: que pasa con el control de calidad...?
Al profesor deben exigirle calidad en la entrega... Háganse cargo.
Un curso de programacion basica es suficiente, pero en Platzi sobran este tipo de cursos.
Creo que el mismo hecho de ser un curso de programación desde cero aplica a que el contenido sea muy básico para la audiencia que desconoce totalmente del lenguaje o la profesión.
No obstante siempre es posible mejorar la calidad. Por lo que sugiero envíes un correo a team@platzi.com para compartir tus recomendaciones para este o próximos lanzamientos. Siempre están abiertos a mejorar el producto.
No es lo básico, porque hay cursos básicos con un profesor senior que si se sienten que aportan. El problema es poner a un muchacho muy junior a explicar. No hay ejemplos avanzados, es solamente lo que está en Wikipedia, pero interpretado.
Operador if: Es uno de nuestros operadores lógicos, esta sentencia va a funcionar a partir de la comparación de unos datos. El resultado será un valor booleano, true o false.
buenas noches no se si todavia alguien lea mi mensaje pero ojala me puedan ayudar a resolver una duda estoy haciendo el curso desde cero y cuando uso este parametro isEmpty en mi IntelliJ IDEA Educational Edition 2020 me salio isEmpty pero con una raya en la mitad aunque asi me funciono cuando compile el ejercicio pero tengo esa duda aunque puede ser pequeña. gracias
Las rayas en la mitad suelen significar que esa función ha sido deprecada y que pronto será eliminada. Acabo de revisar el ejercicio y no he visto ningun signo de deprecación. Quizas tu IDE al ser del 2020 no este mostrando la información correcta, puedes intentar actualizarlo? :)
aunque el curso tiene un buen ritmo ¿a que hora vimos la estructura en si del código?
como novato en kotlin sin experiencia alguna en java no entiendo que es "fun main" o por que escribió "array<string>"
que es eso ¿se va a explicar mas adelante o nosotros ya tenemos que haberlo sabido? A estas altura solo se que "val" es para crear variables y estoy viendo que if son condiciones, pero hay varias cosas que ya se dan por hecho que nosotros a según ya sabemos.
Si alguien sabe si deberíamos haber llegado a este curso ya con conocimiento de algo por favor dígamelo.
Hola, qué tal?, esa parte sel main y del array string, también aparecen en java, pues como ya se mencionó kotlin surgió de problemillas que tenía java, lo que puede decir al respecto.
.
La función main, es el punto de entrada, a lo que me refiero, es la que encapsula todo nuestro algoritmo, imagínalo como ese espacio de trabajo, que se crea y permanece hasta finalizar todas aquellas acciones que nosotros hemos colocado allí, en el caso más simple permanece por muy poco tiempo pues solo se asignan e imprimen variables, en casos más complejos como una app, es la que mantiene viva la app, aunque no se esté haciendo nada, y se termina cuando el usuario la cierra.
.
Aunque esta funcionalidad de mantener viva, la aplicación no solamente aparece en java y kotlin, también está disponible en los demás lenguajes de programación.
.
Sucede lo mismo con array<String>, que se encuentra en la función main, esta se utiliza para poder recibir los argumentos, que entregamos cuando iniciamos la aplicación o el programa. Estos argumentos en general son entregados cuando trabajamos en un terminal, por ejemplo la de Linux.
.
Pero vuelvo a hacer hinca pie de que su función para dar un punto de entrar o darle apertura a la aplicación, otro dato de interés es saber que el lugar de donde surgirá la jerarquización de archivos depende de donde se encuentre la función.
.
Sé que es un tanto abrumador, pero mi consejo es tomar otros cursos que veas que son iniciales, y trata de entender solo aquello que si te están explicando, y lo que no anotalo como pendiente, y conforme vayas avanzando posiblemente le encuentres sentido ya sea viendo un curso o viéndolo brevemente en otra parte, muchas cosas a veces su explicación no es tan compleja, pero otras veces tampoco es necesario saberlo.
fun ``main(args: Array<String>) { ``val ``nombre : String = "ene" ``println``(nombre) ``// Comprobación de if if ``(nombre.``isNotEmpty``()) ``println``("El largo de nuestra variable nombre es ${nombre.length}") ``else println``("Error, nuestra variable esta vacia") ``// Asignación de if var ``mensaje : String ``if ``(nombre.length > 8){ mensaje = "Tienes un nombre largo!" } ``else ``{ mensaje = "Tienes un nombre corto" } ``println``(mensaje) ``/*// Asignación de if inmutable val mensajeInmutable = if (nombre.length > 8) "Tienes un nombre largo!" else "Tienes un nombre corto" println(mensajeInmutable) // Asignación de variable inmutable con else if val mensajeInmutable2= if (nombre.length > 8) "Tienes un nombre largo!" else if(nombre.isEmpty()) "Este nombre esta vacio :(" else "Tienes un nombre corto" println(mensajeInmutable2)*/}
Hola compañeros, tengo una pequeña duda, en la sección donde utiliza if y imprime la variable mensaje fuera de los if, ¿no se supondría que no tendría que salir nada? o a que se debe eso.
Es por el Scope de la variable, como la definio antes de las llaves del if equivale a que es global para el if. En otras palabras como esta en un nivel superior la puede usar dentro del if. Si la definiera dentro del if el scope solo seria valido dentro del if y por fuera te daria un error.
fun main(){ val nombre ="Maria"if(nombre.isNotEmpty())println("El largo de nuestro nombre es ${nombre.length}")elseprintln("Error la variable esta vacia") val mensaje :String when { nombre.length>4-> mensaje ="Tu nombre es largo"else-> mensaje ="tienes un nombre corto"}println(mensaje)}```fun main(){  val nombre ="Maria" if(nombre.*isNotEmpty*())*println*("El largo de nuestro nombre es ${nombre.length}") else*println*("Error la variable esta vacia")  val mensaje :String  when {  nombre.length>4-> mensaje ="Tu nombre es largo" else-> mensaje ="tienes un nombre corto" } *println*(mensaje)}