Beyra Lapierre Tumalan
EstudianteKebyn Enrique Ajin Elías
Estudianteandy Tres Astronautas
EstudianteCamilo Taborda
EstudianteKevin Zavala
EstudianteDavid Acevedo Gómez
EstudianteTomás Antonio Cartaya Lyon
EstudianteDavid Acevedo Gómez
EstudianteJonathan Rocha
Estudiantekolab Linkear
EstudianteJhonny Pimiento
EstudianteOsw Martinez
EstudianteEmmanuel Rodríguez
EstudianteYury Jajitzky
EstudianteUn pequeño aporte ilustrativo entre la diferencia de While y Do While
Muy buen aporte, muchas gracias :)
En su momento un profesor me lo explico de esta manera y me ayudo a entenderlo más fácilmente
WHILE: Se usa cuando no tienes clara la cantidad de veces que se iterara sobre el ciclo
FOR: Se usa cuando tienes claro de antemano la cantidad de veces que se realizará la iteración
Un buen ciclo en la vida de un programador 😎.
void main() { String student = 'Please Your Name Here!'; int hoursPerWeek = 14; print("Bienvenido a Platzi💚 ${student}"); int count = 1; while(count < hoursPerWeek){ count++; print("#NuncaParesDeAprender 👨🏽💻"); } }
Y lo mejor, es cambiar en la vida la expresión count < hoursPerWeek por un "true". Nota: PERO NO EJECUTARLO EN LA MÁQUINA!!!! 🤓
Una manera de recordar en que casos usar un ciclo correctamente es la siguiente: do-while: cuando la operación se deba ejecutar al menos una vez. while: cuando la operación se deba ejecutar un número desconocido de veces. for: cuando se sepa cuantas veces se requiere ejecutar una operación y/o se requiera el indice de la operación.
Esto no quiere decir que debas utilizar un ciclo u otro específicamente, solamente es para aprovechar la definición del ciclo.
en el ciclo for, la iteración debe iniciar siempre en 0? o puede iniciar en 1?
Puede iniciar en cualquier número que necessites, no necesariamente comienza en 0, ejemplo si necessitas iterar desde el número 5 hasta el 7 puedes hacerlo
gracias
Ciclo While:
void main() { int tazasDeCafe = 0; int maximoTazas = 3; while (tazasDeCafe < maximoTazas) { tazasDeCafe++; print("Cantidad tazas: $tazasDeCafe"); } }
Ciclo Do While:
void main() { int tazasDeCafe = 0; int maximoTazas = 3; do { tazasDeCafe++; print("Cantidad tazas $tazasDeCafe"); } while (tazasDeCafe < maximoTazas); }
Ciclo For:
void main() { int tazasDeCafe = 0; int maximoTazas = 3; for (int i = 0; i < maximoTazas; i++) { tazasDeCafe = i + 1; print("Cantidad de tazas: $tazasDeCafe"); } }
Pequeño ejemplo con while, do-while y for
void main() { int tazas_de_cafe = 0; int maximo = 10; String cafe = "☕"; //* while while (tazas_de_cafe < maximo) { tazas_de_cafe++; print(cafe * tazas_de_cafe); } // * do while do { tazas_de_cafe++; print(cafe * tazas_de_cafe); } while (tazas_de_cafe < maximo); // * for for (int i = 0; i < 10; i++) print(cafe * i); }
void main(){
int teChai = 0; int maximo = 0; while(teChai <= maximo) { teChai++; print("Quantity of Te Chai: $teChai"); }
}
Sorry. A mi me gusta más el TE CHAI
//Ciclos //While void main() { int deudas = 0; int maximo = 3;
while(deudas < maximo){ deudas++; print("Deudas: $deudas"); } }
Ciclos
❓Debate ¿Sabías que las iteraciones son un recurso costoso? ¿Conoces la definición de complejidad en código?
.
Big O Notation
ℹ️ Definition Esta notación representa la complejidad de un algoritmo mediante su ejecución y rendimiento.
.
Big Notation estima el costo en el peor de los escenarios con lo que es ejecutado un bloque de código.
.
Por ejemplo: O(n^2)
Donde
nrepresenta el número elementos que la función recibe como entradas.
. !graph . De la imagen podemos ver que la complejidad de una función incrementa la cantidad de cálculos o el tiempo que se necesita para completar dicha operación. . Si la complejidad fuese alta, pueden surgir problemas de rendimiento e impidiendo que la función escale bien a medida que se solicite más (tenga más entradas). .
ℹ️ Definition
O(1)representa una función que siempre entrega una evaluación sencilla.
bool isFirstNumberEqualToOne(List<int> numbers) { return numbers.get(0) == 1; }
ℹ️ Definition
O(n)representa una función que incrementa linearmente y directamente proporcional al número de entradas.
bool containsNumber(List<int> numbers, int comparisonNumber) { for(final number in numbers) { if(number == comparisonNumber) { return true; } } return false; }
ℹ️ Definition
O(n^2)representa una función que es directamente proporcional al cuadrado de sus entradas, es decir, complejidad basada en iteraciones de iteraciones.
bool containsDuplicates(List<String> input) { for (int outer = 0; outer < input.length; outer++) { for (int inner = 0; inner < input.length; inner++) { if (outer != inner && input[outer] == input[inner]) { return true; } } } return false; }
ℹ️ Definition
O(2^n)representa a las funciones recursivas donde, hasta no cumplir la condición, seguirá ejecutándose.
int fibonacci(int number) { if (number <= 1) { return number; } else { return fibonacci(number - 1) + fibonacci(number - 2); } }
ℹ️ Definition
O(log(n))representa a aquellas funciones cuya complejidad se reduce en relación de la cantidad de entradas que se van solicitando.
. Casos como búsquedas binaras y ordenamientos basados en patrones de diseño se establecen bajo esta complejidad.
bool containsNumber(List<int> numbers, int comparisonNumber) { int indexhigher = numbers.length - 1; int indexLower = 0; while (indexLower <= indexhigher) { int index = (indexLower + (indexhigher - indexLower) / 2).round(); if (comparisonNumber < numbers[index]) { indexhigher = index - 1; } else if (comparisonNumber > numbers[index]) { indexLower = index + 1; } else { return true; } } return false; }
Ejemplo con WHILE
void main() { // Contador de Cafe int tazasDeCafe = 0; int maximo = 3; while (tazasDeCafe < maximo) { tazasDeCafe++; print('Cantidad de tazas de cafe: $tazasDeCafe'); } }
Ejemplo con DO WHILE
void main() { // Contador de Cafe int tazasDeCafe = 0; int maximo = 3; do { tazasDeCafe++; print('Cantidad de tazas de cafe: $tazasDeCafe'); } while (tazasDeCafe < maximo); }
Ejemplo con FOR
void main() { // Contador de Cafe int tazasDeCafe = 0; int maximo = 3; for (int i = 0; i < maximo; i++) { tazasDeCafe = i + 1; print('Cantidad de tazas de cafe: $tazasDeCafe'); } }