🐱💻 Switch Case se utiliza para agilizar la toma de decisiones múltiples. Si tienes varios If-Else anidados deberías considerar utilizar esta estructura de control.
Bienvenida e Introducción
Introducción y Bienvenida
Dart vs. Go vs. JavaScript vs. Kotlin
DartPad y qué editores utlizar
Básicos 1: Variables y Operadores
Variables: Números (int,double), String y booleanos
Colecciones
Diccionarios
Constantes (final y const)
Operadores aritméticos, de asignacion y lógicos
Básicos 2: Funciones y Parámetros
Declaración de funciones y la función Main()
Funciones de sintaxis corta (Arrow) y Anónimas (Lambda)
Parámetros requeridos, opcionales, posicionados, nombrados y por defecto
Básicos 3: Flujos de Control
If-Else y Expresiones Condicionales
Switch y Case
For
While y do-while
Break y Continue
Clases
Definición de clases y miembros
Constructores por defecto, por parámetro o nombrados
Métodos Getter y Setter y variables privadas
Herencia
Clases Abstractas
Interfaces implícitas
Utilizar Flutter en Dart
Iniciar y estructurar un proyecto en Flutter
Contenedores
Creando un botón personalizado con el Widget Container
Modelos de datos y peticiones http
Trabajando datos http y Widget Future Builder
Ejecutando el mismo código en Android y iOS
Conclusiones
Dart en el futuro
No tienes acceso a esta clase
¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera
Switch/Case es una estructura de control utilizada para la toma de decisiones múltiples en las que se evalúa un valor y realiza un set de acciones dependiendo de cuál es el valor.
Ejemplo:
switch(valor) {
case expresion1: {
// acciones;
}
break;
case expresion2: {
//acciones;
}
break;
default: {
//acciones si no aplican las demás;
}
break;
}
Aportes 29
Preguntas 8
🐱💻 Switch Case se utiliza para agilizar la toma de decisiones múltiples. Si tienes varios If-Else anidados deberías considerar utilizar esta estructura de control.
RESUMEN DE LA CLASE
Switch y Case: Es una manera de evaluar condiciones muy similar a if-else en cascada.
Reglas
-Se puede utilizar int, String y Enum como tipo para evaluar la condición.
-La claúsula case debe terminar con break, continue, throw o return.
-Si ningun case coincide con el valor evaluado, se utiliza la claúsula default.
Sintaxis
switch(opción){
case expresion1:
print("caso 1");
break;
case expresion2:
print("caso 2");
break;
default:
print("por defecto");
}
Información adicional
Con la claúsula continue se puede mandar al programa a una etiqueta definida. Por ejemplo:
//...//
case 1:
continue EtiquetaUno;
//...//
Etiqueta Uno:
print("hola");
Se ve interesante el uso de la palabra continue es parecida a GOTO que te permitia ir a donde esta una etiqueta solo que en este caso se limita al parecer a funcionar dentro de un ciclo o estructura condicional.
También seria bueno mencionar que no solo te permite ir lineas abajo sino que puedes ir lineas arriba
var opcion = 2;
switch (opcion) {
irAOpcion1: //Si opcion=2 el codigo retorna aqui arriba
case 1:
print('Opcion 1');
break;
case 2:
print('Opcion 2');
continue irAOpcion1; //Regresando al bloque de la opcion 1
break;
case 3:
print('Opcion 3');
break;
}
Esto del continue me recordo al antiguo GO TO o solo me lo parece a mi
Interesante el uso de etiquetas, se pueden hacer los saltos que desees creo que otro lenguaje no posee algo parecido, aqui un ejemplo de 4 etiquetas para formar mi nombre.
void main(){
String nombre_completo = "";
var opcion = 2;
switch(opcion){
primerApellido:
case 1:
nombre_completo += " Campos";
continue segundoApellido;
break;
case 2:
nombre_completo += "Jose";
continue segundoNombre;
break;
segundoApellido:
case 3:
nombre_completo += " Madrid";
break;
segundoNombre:
case 4:
nombre_completo += " Adrian";
continue primerApellido;
break;
}
print(nombre_completo);
}
muy interesante la funcionalidad del continue… pasar de php a dart al parecer no es tan complicado
Bastante malo el ejempo. La etiqueta no se debe usar, eso por un lado. Y ademas poner la etiqueta abajo de la linea que la llama es lo mismo que no poner ninguna de esas 2 lineas… Ni hablar que el ejemplo el que esta aprendiendo no sabe si entro por 1 o 2 ya que son iguales los textos.
Regular esta explicación, sobretodo por el ultimo ejemplo.
main() {
var opcion=2;
switch (opcion){
case 1:
print ('Retornar valor $opcion');
break;
case 2:
print ('Retornar valor $opcion');
continue continuaaqui;
continuaaqui :
case 3:
print ('Retorna el valor anidado $opcion');
break;
default:
print('Retornar valor :8');
}
}```
Dart Programming - continue Statement
https://www.tutorialspoint.com/dart_programming/dart_programming_continue_statement.htm
¿Como podría utilizarse la cláusula throw?
void main() {
var opcion = 11;
switch (opcion) {
case 1:
print('Retornamos la opción $opcion');
break;
case 2:
print('Retornamos la opción $opcion');
break;
default:
print('Retornamos la opción $opcion');
}
}
¿Cómo se pueden recibir datos por teclado? Veo que no lo han explicado.
Excelente explicacion! Me di cuenta que Switch es muy parecido a When o tambien a las condiciones If-else.
Hasta ahora la mejor clase!
Tiene partes que son muy parecidas a Java
Creo que el if-else-if tiene el mismo fundamento del switch case, pero la diferencia es que swicth es mas simplificado y mas legible a la hora de codificar.
Eso del continue esta interesante aunque todavia no se en que utiilizarle jejejej
De verdad que no entiendo el uso del continue.
Mientras que if else en cascada evalúa cada una de las opciones hasta entrar en alguna de ellas. Switch Case entra directamente a una de las opciones.
main(List<String> args)
{
var option = 1;
// Una forma mas elegante de evaluar la igualdad de una variable contra una lista de valores.
switch(option)
{
case 1: print('Ganaste un auto!');
break;
case 2: print('Ganaste un viaje a New York!');
break;
case 3: print('No ganaste nada :(');
break;
default: print('Solo puedes elegir una de las tres opciones'); //Acciones si no aplican las demas.
}
// El mismo codigo usando if-else if
if (option == 1)
{
print('Ganaste un perro!');
}
else if (option == 2)
{
print('Ganaste un viaje a Silicon Valley');
}
else if (option == 3)
{
print('No ganaste nada :(');
}
else
{
print('Solo puedes elegir una de las tres opciones');
}
// Usando el operador ternario
var choise = option == 1 ? 'Ganaste algo' : 'No ganaste nada';
print(choise);
}
Dar parece ser un buen lenguaje de programación para iniciar desde 0
Interesante el uso de continue
Switch case es la forma de tener muchos if - else if anidados, pero que sea mucho más entendible.
//Se puede utilizar int y string para evaluar la condicion
//La clausula case no puede terminar vacia y debe finalizar con un break, continue, throw o return
main(List<String> args) {
var opcion = 2;
switch (opcion) {
case 1 :
print('Retornamos el valor $opcion');
break;
case 2:
print('Retornamos el valor $opcion');
continue continuaAqui;
continuaAqui:
case 3:
print('Retornamos el valor es 3');
break;
default:
print('Retornamos el valor $opcion');
}
}
Este es mi codigo, esta sintaxis es igual que java.
//Switch Case
var opcion = 2;
switch(opcion){
case 1:
print('Este es el caso $opcion');
break;
case 2:
print('Este es el caso $opcion');
break;
case 3:
print('Este es el caso $opcion');
break;
default:
print('Elige una opcion correcta.');
}```
main(List<String> args) {
var opcion=2;
switch (opcion) {
case 1:
print('Retornamos valor $opcion');
break;
case 2 :
print('Retornamos valor $opcion');
continue continuaAqui;
continuaAqui:
case 3 :
print('Retornamos valor 3 pedido por usuario ');
break;
default:
print('Retornamos valor $opcion');
}
}
y vuelve la programación espagueti, Nada mas difícil que sacar la lógica de un programa con estas banderas “continuaAqui”
Dejo mi ejemplo de la clase
var mes = 1;
switch (mes) {
case 1:
print("Enero");
break;
case 2:
print("Febrero");
break;
case 3:
print("Marzo");
break;
case 4:
print("Abril");
break;
case 5:
print("Mayo");
break;
default:
}```
Si utilizamos un continue se va a ejecutar el siguiente case que tengamos a pesar de que no se cumpla la condición.
“La claúsula case
debe terminar con break
, continue
, throw
o return
.”
¿Qué función tiene y como funciona throw
y return
?.
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?