En este tema, aprenderemos sobre las sentencias de control de flujo en Dart, que son fundamentales para dirigir el flujo de ejecución de un programa. Estas sentencias permiten tomar decisiones, repetir acciones y manejar excepciones.
Contenido
- Sentencias Condicionales
if
yelse
switch
ycase
- Bucles
for
while
do-while
- Manejo de Excepciones
try
,catch
,finally
- Lanzar excepciones
Sentencias Condicionales
if
y else
La sentencia if
se utiliza para ejecutar un bloque de código si una condición es verdadera. La sentencia else
se utiliza para ejecutar un bloque de código si la condición es falsa.
Sintaxis:
if (condición) { // Código a ejecutar si la condición es verdadera } else { // Código a ejecutar si la condición es falsa }
Ejemplo:
void main() { int edad = 20; if (edad >= 18) { print('Eres mayor de edad.'); } else { print('Eres menor de edad.'); } }
switch
y case
La sentencia switch
se utiliza para seleccionar una de muchas opciones basadas en el valor de una expresión.
Sintaxis:
switch (expresión) { case valor1: // Código a ejecutar si expresión == valor1 break; case valor2: // Código a ejecutar si expresión == valor2 break; default: // Código a ejecutar si ninguna de las condiciones anteriores se cumple }
Ejemplo:
void main() { String dia = 'Lunes'; switch (dia) { case 'Lunes': print('Inicio de la semana.'); break; case 'Viernes': print('Fin de la semana laboral.'); break; default: print('Día normal.'); } }
Bucles
for
El bucle for
se utiliza para ejecutar un bloque de código un número específico de veces.
Sintaxis:
Ejemplo:
while
El bucle while
ejecuta un bloque de código mientras una condición sea verdadera.
Sintaxis:
Ejemplo:
do-while
El bucle do-while
es similar al while
, pero garantiza que el bloque de código se ejecute al menos una vez.
Sintaxis:
Ejemplo:
Manejo de Excepciones
try
, catch
, finally
El manejo de excepciones se utiliza para manejar errores de manera controlada.
Sintaxis:
try { // Código que puede lanzar una excepción } catch (e) { // Código para manejar la excepción } finally { // Código que siempre se ejecuta }
Ejemplo:
void main() { try { int resultado = 10 ~/ 0; // Esto lanzará una excepción } catch (e) { print('Se produjo una excepción: $e'); } finally { print('Este bloque siempre se ejecuta.'); } }
Lanzar Excepciones
Puedes lanzar tus propias excepciones utilizando la palabra clave throw
.
Ejemplo:
void verificarEdad(int edad) { if (edad < 18) { throw Exception('Eres menor de edad.'); } } void main() { try { verificarEdad(16); } catch (e) { print('Excepción: $e'); } }
Ejercicios Prácticos
Ejercicio 1: Sentencias Condicionales
Escribe un programa que verifique si un número es positivo, negativo o cero.
Solución:
void main() { int numero = -5; if (numero > 0) { print('El número es positivo.'); } else if (numero < 0) { print('El número es negativo.'); } else { print('El número es cero.'); } }
Ejercicio 2: Bucles
Escribe un programa que imprima los números del 1 al 10 utilizando un bucle for
.
Solución:
Ejercicio 3: Manejo de Excepciones
Escribe un programa que intente dividir dos números y maneje la excepción si el divisor es cero.
Solución:
void main() { int a = 10; int b = 0; try { int resultado = a ~/ b; print('El resultado es $resultado'); } catch (e) { print('Error: No se puede dividir por cero.'); } }
Conclusión
En esta sección, hemos cubierto las sentencias de control de flujo en Dart, incluyendo sentencias condicionales, bucles y manejo de excepciones. Estas herramientas son esenciales para controlar el flujo de ejecución de tus programas y manejar errores de manera efectiva. Asegúrate de practicar estos conceptos con los ejercicios proporcionados para reforzar tu comprensión. En el próximo módulo, profundizaremos en las funciones y métodos en Dart.
Curso de Desarrollo con Flutter
Módulo 1: Introducción a Flutter
- ¿Qué es Flutter?
- Configuración del Entorno de Desarrollo
- Entendiendo la Arquitectura de Flutter
- Creando Tu Primera App con Flutter
Módulo 2: Conceptos Básicos de Programación en Dart
- Introducción a Dart
- Variables y Tipos de Datos
- Sentencias de Control de Flujo
- Funciones y Métodos
- Programación Orientada a Objetos en Dart
Módulo 3: Widgets en Flutter
- Introducción a los Widgets
- Widgets Stateless vs Stateful
- Widgets Básicos
- Widgets de Diseño
- Widgets de Entrada y Formularios
Módulo 4: Gestión de Estado
Módulo 5: Navegación y Enrutamiento
- Introducción a la Navegación
- Navegación Básica
- Rutas Nombradas
- Pasando Datos Entre Pantallas
- Deep Linking
Módulo 6: Redes y APIs
- Obteniendo Datos de Internet
- Parseo de Datos JSON
- Manejo de Errores de Red
- Usando APIs REST
- Integración con GraphQL
Módulo 7: Persistencia y Almacenamiento
- Introducción a la Persistencia
- Preferencias Compartidas
- Almacenamiento de Archivos
- Base de Datos SQLite
- Usando Hive para Almacenamiento Local
Módulo 8: Conceptos Avanzados de Flutter
- Animaciones en Flutter
- Custom Paint y Canvas
- Canales de Plataforma
- Isolates y Concurrencia
- Optimización de Rendimiento
Módulo 9: Pruebas y Depuración
- Introducción a las Pruebas
- Pruebas Unitarias
- Pruebas de Widgets
- Pruebas de Integración
- Técnicas de Depuración
Módulo 10: Despliegue y Mantenimiento
- Preparación para el Lanzamiento
- Construcción para iOS
- Construcción para Android
- Integración Continua/Despliegue Continuo (CI/CD)
- Mantenimiento y Actualización de Tu App