Desafío: FizzBuzz
Parte de la sección Lógica y Flujo del Journey de Dart de Coddy — lección 65 de 65.
Desafío
FácilCrea un programa que implemente el clásico desafío FizzBuzz con una estructura de bucle y lógica condicional adecuadas. Este desafío pone a prueba tu capacidad para combinar bucles, sentencias condicionales y el operador módulo para resolver un problema de programación muy conocido.
Tu tarea consiste en:
- Usar un bucle
forpara iterar a través de los números del 1 al 50 (inclusive) - Para cada número, aplica las siguientes reglas en orden:
- Si el número es divisible por 3 y por 5 a la vez, imprime
FizzBuzz - Si el número es divisible solo por 3, imprime
Fizz - Si el número es divisible solo por 5, imprime
Buzz - Si el número no es divisible por 3 ni por 5, imprime el propio número
- Si el número es divisible por 3 y por 5 a la vez, imprime
- Cada salida debe estar en una línea separada
- Usa el operador módulo (
%) para comprobar la divisibilidad - Estructura tus sentencias condicionales usando
if,else ifyelseen el orden correcto
Las primeras líneas de tu salida deberían verse así:
1
2
Fizz
4
Buzz
Fizz
7
8
Fizz
Buzz
11
Fizz
13
14
FizzBuzzRecuerda que la clave para resolver FizzBuzz correctamente es comprobar primero el caso de "ambas condiciones" (divisible por 3 y por 5), antes de comprobar las condiciones individuales. Un número es divisible por otro si el resto al dividirlo por ese número es igual a cero.
Tu programa debe demostrar el uso adecuado de bucles para la iteración, el operador módulo para la prueba de divisibilidad y sentencias condicionales estructuradas en el orden lógico correcto para manejar todos los casos posibles.
Pruébalo tú mismo
void main() {
// TODO: Escribe tu código a continuación
// Usa un bucle for para iterar del 1 al 50
// Comprueba la divisibilidad usando el operador módulo (%)
// Recuerda comprobar primero si es divisible por 3 Y 5, luego las condiciones individuales
// Imprime cada resultado en una línea separada
}Todas las lecciones de Lógica y Flujo
1Manipulación avanzada de listas
Propiedades de listas: first y lastEstado de la lista: isEmpty y isNotEmptyInvertir una listaAñadir a una lista: insertEliminación en listas: removeWhereBúsqueda en una lista: indexOfOrdenar una listaMezclar una listaResumen - Organizador de listas4Manipulación avanzada de mapas
Iterar sobre un mapaComprobación de claves y valoresPropiedades del mapa: keys y valuesAdición condicional: putIfAbsentEliminar entradas de un mapaMapas anidadosResumen - Actualización de inventario7Funciones avanzadas
Funciones anónimasPasar funciones como argumentosEntendiendo los ClosuresIntroducción a la recursividadFunción recursiva: Cuenta regresivaFunción recursiva: FactorialResumen - Procesador de listas10Desafíos finales
Desafío: Clasificador de calificacionesDesafío: Contador de vocalesDesafío: FizzBuzz2Operaciones funcionales con listas
Transformar con 'map'Filtrar con 'where'Uso de '.toList()'Comprobar condiciones con 'any'Condiciones con 'every'Búsqueda con 'firstWhere'Resumen - Filtrado de datos5Proyecto: Calculadora de carrito de compras
Configuración del proyectoAgregar artículos al carrito3Conjuntos
¿Qué es un Conjunto?Crear un ConjuntoAñadir y eliminar elementos de un ConjuntoComprobar elementos en un ConjuntoConvertir una lista en un ConjuntoUnión de ConjuntosIntersección de ConjuntosDiferencia de ConjuntosResumen - Lista de invitados única