← Dart EspañolChapter 04 of 13

Control de Flujo

## Objetivos de Aprendizaje - Dominar sentencias if-else - Trabajar con sentencias switch - Usar bucles efectivamente - Manejar control de bucles con break y continue ## Sentencias If-Else ### If Basico ```dart void main() { int score = 85; if (score >= 90) { print('A'); } } ``` ### If-Else ```dart void main() { int score = 85; if (score >= 90) { print('A'); } else { print('B o menos'); } } ``` ### Cadena If-Else-If ```dart void main() { int score = 85; if (score >= 90) { print('A'); } else if (score >= 80) { print('B'); } else if (score >= 70) { print('C'); } else { print('F'); } } ``` ### Operador Ternario ```dart void main() { int score = 85; String grade = score >= 60 ? 'Aprobado' : 'Reprobado'; print(grade); // Aprobado } ``` ### If Anidado ```dart void main() { int age = 25; bool hasLicense = true; if (age >= 18) { if (hasLicense) { print('Puede conducir'); } else { print('Necesita licencia'); } } else { print('Muy joven para conducir'); } } ``` ## Sentencias Switch ### Switch Basico ```dart void main() { String grade = 'B'; switch (grade) { case 'A': print('Excelente'); break; case 'B': print('Bueno'); break; case 'C': print('Regular'); break; default: print('Calificacion invalida'); } } ``` ### Switch con Multiples Casos ```dart void main() { String fruit = 'apple'; switch (fruit) { case 'apple': case 'orange': case 'banana': print('Fruta comun'); break; case 'mango': case 'pineapple': print('Fruta tropical'); break; default: print('Fruta desconocida'); } } ``` ### Expresion Switch (Dart 3) ```dart void main() { String grade = 'B'; String result = switch (grade) { 'A' => 'Excelente', 'B' => 'Bueno', 'C' => 'Regular', _ => 'Calificacion invalida', }; print(result); // Bueno } ``` ### Switch con Patrones (Dart 3) ```dart void main() { dynamic value = 42; switch (value) { case int n when n > 0: print('Entero positivo: $n'); break; case int n when n < 0: print('Entero negativo: $n'); break; case String s: print('Cadena: $s'); break; default: print('Otro'); } } ``` ## Bucles While ### While Basico ```dart void main() { int count = 1; while (count <= 5) { print('Contador: $count'); count++; } } ``` ### Bucle Do-While ```dart void main() { int count = 1; do { print('Contador: $count'); count++; } while (count <= 5); } ``` ### While vs Do-While ```dart void main() { // While: condicion verificada primero int a = 10; while (a < 5) { print('while: a = $a'); // Nunca se ejecuta a++; } // Do-while: el cuerpo se ejecuta al menos una vez int b = 10; do { print('do-while: b = $b'); // Se ejecuta una vez b++; } while (b < 5); } ``` ## Bucles For ### For Tradicional ```dart void main() { for (int i = 1; i <= 5; i++) { print('Iteracion: $i'); } } ``` ### For-In ```dart void main() { var items = ['apple', 'banana', 'orange']; for (var item in items) { print(item); } } ``` ### For-Each con Indice ```dart void main() { var items = ['apple', 'banana', 'orange']; for (var i = 0; i < items.length; i++) { print('$i: ${items[i]}'); } // Usando forEach items.asMap().forEach((index, value) { print('$index: $value'); }); } ``` ## Control de Bucles ### Break ```dart void main() { for (int i = 1; i <= 10; i++) { if (i == 5) { break; // Sale del bucle completamente } print(i); // Imprime 1, 2, 3, 4 } } ``` ### Continue ```dart void main() { for (int i = 1; i <= 5; i++) { if (i == 3) { continue; // Salta esta iteracion } print(i); // Imprime 1, 2, 4, 5 } } ``` ### Break con Etiquetas ```dart void main() { outerLoop: for (int i = 1; i <= 3; i++) { for (int j = 1; j <= 3; j++) { if (i == 2 && j == 2) { break outerLoop; // Sale del bucle externo } print('i=$i, j=$j'); } } } ``` ## Iterando Colecciones ### Lista ```dart void main() { var list = [1, 2, 3, 4, 5]; // forEach list.forEach((item) => print(item)); // for-in for (var item in list) { print(item); } } ``` ### Conjunto ```dart void main() { var fruits = {'apple', 'banana', 'orange'}; for (var fruit in fruits) { print(fruit); } } ``` ### Mapa ```dart void main() { var ages = {'Alice': 30, 'Bob': 25}; // Iterar claves for (var key in ages.keys) { print('$key'); } // Iterar valores for (var value in ages.values) { print('$value'); } // Iterar entradas for (var entry in ages.entries) { print('${entry.key}: ${entry.value}'); } } ``` ## Resumen - If-else: `if`, `else if`, `else` - Switch: `switch`, `case`, `break`, `default` (o `case _`) - Bucles: `while`, `do-while`, `for` - Control de bucles: `break` (salir), `continue` (saltar) - Usar `for-in` para iteracion simple sobre colecciones - Expresiones switch (Dart 3) devuelven valores directamente

Comments

Comments powered by Giscus

To enable comments, add your Giscus embed code here.

Learn more about Giscus →