Condicionales
Clase 12 de 23 • Curso de Dart desde Cero
Contenido del curso
Yeicob Calderón
Melvin Salas
Marcelo Loredo
Eban Sayago Melián
Juan Esteban Hernández Bonilla
Yury Jajitzky
Guadalupe de jesus Garcia rodriguez
Josué Gregorio Fernández Tovar
Andres Elias Mendoza Zuluaga
Daulis Gonzalez
kolab Linkear
Carlos Daniel Villada
Albin Anthony Hinostroza Macavilca
Osw Martinez
Samuel Miranda Martínez
Emmanuel Rodríguez
Jonathan Rocha
Enrique Reyes
RodNal CY
Agustin Emilio Alcantara Corporan
David Higuera
Sebastian Guardo Lugo
Existe otra alternativa a los condicionales anidados que son los Else if, por ejemplo:
int tieneMascota = 1; if (tieneMascota == 0) { print("No tiene mascota"); } else if (tieneMascota == 1) { print("tiene una mascota"); } else { print("Tiene muchas mascotas"); }
Excelente :D
En realidad, esto no deja de ser condicionales anidadas, lo único que cambia es que se omiten las llaves de los 'else' del medio y se evita la identación.
¿Dónde está la igualdad estricta? ===
Si al igual que yo, venís de programar en JavaScript (sobretodo TypeScript), habrás notado la ausencia de nuestra querida igualdad estricta (===) y te habrá hecho ruido ver la igualdad simple (==). En realidad, en Dart el == funciona igual que el === en JS.
print("1" == 1); // false
Y si esto no te parece suficiente, también existe la función identical():
int a = 2; int b = 1 + 1; print(identical(a, b)); // true // Solo existe un objeto "2"
He aquí la diferencia entre ambos métodos:
== | identical() |
|---|---|
| Compara si dos elementos son iguales. || | Compara si dos elementos son el mismo |
Esto es apenas un resumen/traducción de la página oficial de Dart para aquellos que se mueven de JS a Dart-
Les comparto lo que aprendí con if, else y swtich
**If - else: **
**Switch: **
void main() { // Mascotas int mascotas = 2; if (mascotas == 0) { print('No tienes mascotas'); } else if (mascotas == 1) { print('Tienes una mascota'); } else { print('Tienes muchas mascotas'); } switch (mascotas) { case 0: print('No tienes mascotas'); break; case 1: print('Tienes una mascota'); break; default: print('Tienes muchas mascotas'); } }
void main() { int statusMascota = 0;
if (statusMascota == 0) { print("no hay mascotassss"); } else { print("tenemos $statusMascota Mascotas!!!"); } }
Imagen del ejercicio en DartPad
Usando ambos if and switch statements"
Estas serían las condicionales más utilizadas en Dart
void main() { int mascotas = 5; // If - else if (mascotas == 0) { print("No tienes mascotas"); } else { if (mascotas == 1) { print("Solo tienes una mascota"); } else { print("Tienes muchas mascotas"); } } // If anidado if (mascotas == 0) { print("No tienes mascotas"); } else if (mascotas == 1) { print("Solo tienes una mascota"); } else { print("Tienes muchas mascotas"); } // Operador Ternario (mascotas == 0) ? print("No tienes mascotas") : mascotas == 1 ? print("Solo tienes una mascota") : print("Tienes muchas mascotas"); // Switch switch (mascotas) { case 0: print("No tienes mascotas"); break; case 1: print("Solo tienes una mascota"); break; default: print("Tienes muchas mascotas"); } }
//haciendo uso del operador ternario, nos podemos ahorrar unas cuantas lineas de codigo. void main() { int statusMascota = 0; statusMascota == 0 ? print("no hay mascotas") : print("tenemos $statusMascota Mascotas!!!"); }
void main() { int mascota = 20; if (mascota == 0) { print("No tiene mascotas"); } else { if (mascota == 1) { print("Tiene 1 amscota"); } else { print("Tiene muchas mascotas"); } }
switch(mascota){ case 0: print("No tiene mascotas"); break; case 1: print("Tiene 1 amscota"); break; default: print("Tiene muchas mascotas"); } }
//Detector de deudas //if , else, switch void main() { int deudas = 0; if (deudas == 0) { print("No tienes deudas"); } else{ print("Tienes deudas"); } switch(deudas){ case 0: print("No tienes deudas"); break; case 1: print("Tienes 1 deuda"); break; default: print("Tienes varias deudas"); } }
Me esta gustando mucho el curso.
Pd: Muchos if anidados aumenta la complejidad ciclomática.
Control de flujo
✨ Concepto clave En programación tenemos 3 comportamientos (secuencial, condicional e iterativo), que permiten desarrollar algoritmos con el fin de crear procesos según un sentido.
. Como en todos los lenguajes de programación, tendremos las siguientes declaraciones para el control del flujo:
if if .. else switch .. casefor while do .. whilebreak continue.
ℹ️ Definición Un flujo es considerado secuencial ya que se ejecuta línea a línea, el cual podemos explícitamente detener o saltar según su estado contextual.
.
Condicionales
ℹ️ Definición Un flujo se considera condicional cuando deseamos evaluar casos o contextos según sea su origen.
if (isRaining()) you.bringRainCoat(); else if (isSnowing()) you.wearJacket(); else car.putTopDown();
O cuando deseamos evaluar múltiples casos en un mismo bloque de código:
const state = 'OPEN'; switch (command) { case 'CLOSED': sayGoodBye(); break; case 'OUT': saySeeYouLater(); break; default: sayHello(); }
Te dejo mi trabajo realizado durante la clase:
void main() { // Mascotas int mascotas = 0; switch (mascotas) { case 1: print("Solo tienes una mascota"); break; case 2: print("Tienes $mascotas mascotas"); break; default: print("No tienes mascotas"); } if (mascotas >= 2) { print("Tienes $mascotas mascotas"); } else { if (mascotas == 1) { print("Solo tienes una mascota"); } else { print("No tienes mascotas"); } } }
Con el switch tambien se puede evaluar una condición y como devuelve un true o false podemos devolver un resultado a partir de la respuesta.
void main() { //mascotas int cantidadMascotas = 3; //Evaluando con if if(cantidadMascotas == 0) { print('no tienes mascotas'); } else if (cantidadMascotas > 0) { print('Tienes $cantidadMascotas mascotas'); } //evaluando con switch switch(cantidadMascotas > 0) { case false: print('no tienes mascotas'); break; case true: print('Tienes $cantidadMascotas mascotas'); break; } }
Mi ejemplo con case;
void main() { int cantidad = 0; switch (cantidad) { case 0: print("No tiene mascota"); break; case 1: print("Tiene una mascota"); break; default: print("Tienes muchas mascotas"); } }
Pero es puro c#.
Todos los lenguajes son iguales, los operadores y los condicionales se basan en las unidades ALU. ( Arimetic logic unit )
Si, el al principio de el curso explica que este lenguaje se basa en su mayoria en C y otros lenguajes por eso la similitud, pero esto es muy comun en la programacion.