No tienes acceso a esta clase

隆Contin煤a aprendiendo! 脷nete y comienza a potenciar tu carrera

Adquiere por un a帽o todos los cursos, escuelas y certificados por un precio especial.

Antes: $249

Currency
$219/a帽o

Paga en 4 cuotas sin intereses

Paga en 4 cuotas sin intereses
Comprar ahora

Termina en:

0D
18H
16M
8S

Loops: While

20/29
Recursos

Para el ciclo while no conocemos la cantidad de veces que la estructura repetir谩 una o varias instrucciones. Aunque tambi茅n se puede acoplar para que realice un determinado n煤mero de repeticiones.

Por ejemplo, si queremos que un usuario ingrese un valor mayor a 0, no sabremos cu谩ntas veces se equivocar谩. Tambi茅n, si queremos que un programa se ejecute hasta que el usuario ingrese una opci贸n para salir.

C贸mo utilizar el ciclo while

La estructura del ciclo while es la siguiente:

while (condici贸n) {
    // Bloque de c贸digo
    // Cambiar la condici贸n para salir del bucle
}

En este caso la condici贸n es una expresi贸n l贸gica a evaluar, si es verdadero repite el bloque de c贸digo, si es falso el ciclo termina. Debido a esto, necesitas cambiar la variable de la condici贸n, para que no existe un bucle infinito.

Generaci贸n de n煤meros con el bucle while

Por ejemplo, generemos los n煤meros del 1 al 10, ahora con el bucle while.

La estructura es la siguiente:

var numero = 1

while ( numero <= 10 ){
    console.log(numero)
    numero++
}

Esto se leer铆a como: 鈥淢ientras (while) la variable numero sea menor o igual que 10 (numero <= 10) ejecuta una o varias instrucciones (console.log); finalmente, aumenta la variable en uno (numero++) para que no exista un bucle infinito鈥.

Control de variables con el bucle while

Otro ejemplo, tenemos un programa 煤nicamente para estudiantes, queremos controlar que un usuario ingrese una edad menor de 18 (y mayor que 0 porque no existe edades negativas). Entonces utilizamos while debido a que no conocemos cu谩ntas veces se equivocar谩 el usuario.

Ejecuta el siguiente c贸digo en la terminal de tu navegador, e intenta ingresar un valor incorrecto y observa lo que sucede. Se utiliza la condici贸n contraria a lo que queremos, porque es lo que controlaremos, al cambiar la variable edad evitamos el ciclo infinito.

var edad = Number(prompt("Ingrese un valor: "))

while (edad > 18 || edad <= 0){
  edad = Number(prompt("Ingrese un valor correcto: "))
}

console.log("Gracias por ingresar al programa")

Contribuci贸n creada por Andr茅s Guano (Platzi Contributor).

Aportes 330

Preguntas 64

Ordenar por:

驴Quieres ver m谩s aportes, preguntas y respuestas de la comunidad?

o inicia sesi贸n.

Ambos ciclos se ocupan el for y el while. Con for podemos definir un fin de intentos y con el while mientras se cumpla que lo siga haciendo. Es como decir en while ser铆a, seguir cocinando el pollo mientras siga crudo, realmente no sabemos cuando estar谩 cocinado. Si us谩ramos for podr铆a quedarnos crudo o muy quemado, a menos que fueras un super experto.

CUANDO EL PROFESOR UTILIZA LAS COMILLAS INVERTIDAS LUEGO EL SIGNO $ Y { } LLAVES鈥 ESO SE LLAMA INTERPOLAR VARIABLES!!! QUE RARO QUE SE LE HAYA PASADO AL PROFESOR

aqui el c贸digo de la clase con ejemplo tambien del do-while

var estudiantes = ["Maria", "Sergio", "Rosa", "Daniel"];

function saludarEstudiante(estudiante) {
    console.log(`Hola ${estudiante}`);
}

var i = 0;

//do-while
do {
    saludarEstudiante(estudiantes[i]);
    i++;
} while (i < estudiantes.length)

//while
while (estudiantes.length > 0) {
    var estudiante = estudiantes.shift();
    saludarEstudiante(estudiante);
}

馃搶Hola, en contre esta definicion de while que me ayudo a entender mejor

馃搶La traducci贸n de while en espa帽ol es mientras. Por lo tanto, la sentencia while se puede entender como "mientras se cumpla la condici贸n, ejecuta el siguiente bloque de c贸digo entre llaves.

El bucle while recorre un bloque de c贸digo siempre que una condici贸n especificada sea verdadera.
Sintaxis

while (condition) {
  // code block to be executed
}

Utilice el While para continuar para llamar el juego de piedra, papel o tijera hasta que el usuario indique lo contrario.

var opciones = ['Piedra', 'Papel', 'Tijera'];
var maquina = opciones[parseInt(Math.random() * 3)];
var usuario = ""
var jugar = 1;

function Validar(usuario) {

    switch (usuario) {
        case opciones[0]:
            return Juego(usuario, maquina)
            break;
        case opciones[1]:
            return Juego(usuario, maquina)
            break;
        case opciones[2]:
            return Juego(usuario, maquina)
            break;
        default:
            console.log('El valor escrito no es valido.')
            console.log('Intentalo otra vez.')
            break;
    }

}

function Juego(opcion1, opcion2) {

    if (opcion1 === opcion2) {
        return 'Es un empate'
    }
    else if (opcion1 === 'Piedra' && opcion2 === 'Tijera') {
        return `Ganasate: ${opcion1} le gana a ${opcion2}`
    }
    else if (opcion1 === 'Papel' && opcion2 === 'Piedra') {
        return `Ganasate: ${opcion1} le gana a ${opcion2}`
    }
    else if (opcion1 === 'Tijera' && opcion2 === 'Papel') {
        return `Ganasate: ${opcion1} le gana a ${opcion2}`
    } else {
        return `Perdiste: ${opcion2} le gana a ${opcion1}`
    }

}

while (jugar === 1) {
    
    usuario = prompt('Para jugar ingresa: Piedra, Papel o Tijera: ')
    console.log(`La maquina escogio ${maquina}`)
    console.log(`Tu escogiste ${usuario}`)
    console.log(Validar(usuario))
    jugar = parseInt(prompt('Para jugar otra vez escribe 1 de lo contrario preciona 0: '))
}

Tengo entendido que el loop 鈥渨hile鈥 sirve mejor para ciclos en los cuales yo no controlo cuantas veces itera. Por ejemplo, el boton de reiniciar algun juego cuando se me acaban las vidas. Las veces que va a iterar el ciclo depende del usuario y en ese tipo de casos funciona mejor 鈥渨hile鈥 que 鈥渇or鈥.

Amigos, aqu铆 comparto mis anotaciones de la clase:
.

.
Espero que sea de utilidad.
(鈱愨枲_鈻)

Explicaci贸n del ejercicio:

Simple pero bueno :'v

var i =0;
while(i<=10){
document.write( i+ 鈥<br>鈥);
i++;
}

Tambi茅n existe otro ciclo llamado do while que hace lo mismo que el while solo que la primera vez entra al ciclo sin evaluar la condici贸n, es decir al menos ejecuta el bloque una vez, se escribe asi:

do{
//bloque de codigo 
}while(i < 10)

Esto es 煤til en los casos que sabemos que la primera vez si ocurra el bloque.
Espero que les sirva 馃槂

Recomiendo la extensi贸n Quokka.js para ver el resultado ah铆 mismo en el editor de c贸digo.
https://marketplace.visualstudio.com/items?itemName=WallabyJs.quokka-vscode


Otra opci贸n para ver el resultado mientras se va escribiendo el c贸digo es la aplicaci贸n RunJS se puede descargar en windows, mac y linux.
https://runjs.app/

ForEach esta pensado para el ejercicio que hemos estado haciendo

El m茅todo forEach() ejecuta la funci贸n indicada una vez por cada elemento del array, aqu铆 el ejemplo:

function saludarEstudiantes(estudiante){
    console.log(`Hola, ${estudiante}`);
}
estudiantes.forEach(estudiante => saludarEstudiantes(estudiante));

El do while: act煤a y luego piensa
El while: piensa y luego act煤a

Se debe tener especial cuidado con el ciclo while(): si la condici贸n siempre es verdadera, se genera un ciclo infinito, produciendo algunas veces (seg煤n las acciones dentro del while) que el navegador se bloquee (por saturaci贸n de memoria) , obligando a cerrar la pesta帽a/navegador a la fuerza.

Hay algo que no logro entender a煤n y lo he consultado en diferentes sitios para poder digerir bien la informaci贸n. En una funci贸n 驴qu茅 son los par谩metros y en que momento se usan?

馃 La condici贸n en un ciclo while define el limite del mismo.

Este ciclo consiste que mientras sea verdad se ejecutara el loop en este caso va a validar si estudiantes es mayor a cero y como en este ejemplo tenemos 4 elementos y eso se lo hacemos saber con .lenght que me dice su longitud, aqui lo que va a hacer es que en la validacion va a restarle al array el primer valor del index con el metodo .shift entonces en cada ciclo va a restarle 1 entonces hasta que sea igual a 0 dejara de cumplirse y terminara mi loop.

el signo de $ es un como un significado de absoluto o siempre

Wow! me encanta la programaci贸n.
La programaci贸n es magia y sin esa magia el mundo actual no podr铆a funcionar.
隆Les comparto mis apuntes, compa帽eros!
While: ejecuta una sentencia especificada mientras cierta condici贸n se eval煤e como verdadera. Dicha condici贸n es evaluada antes de ejecutar la sentencia.

sintaxis: while (condici贸n)
sentencia
llamar function

Ejemplo:

Peque帽o apunte.

Para los que les da pereza abrir otra pesta帽a para usar la consola de javascript o simplemente quieren probar el c贸digo en una terminal, simplemente instalen nodejs en su sistema (si hicieron el curso de programaci贸n b谩sica ya lo deben tener instalado 馃槢)

sudo apt install nodejs
sudo dnf install nodejs

Guardan su c贸digo con extensi贸n .js y lo ejecutan:

node while.js

Me gust贸 esta clase porque aparte de lo del While aclara la 煤tilidad del shift

tal vez falt贸 mencionar el loop

do {

} while();

d贸nde la condici贸n del while se eval煤a al final de cada tarea y no al principio, es 煤til si uno quiere hacer un men煤, y si uno quiere que al menos se eval煤e la tarea una sola vez al menos.

Las comillas鈥 Tengan cuidado con el tipo de comillas

Genial, pr谩cticamente con el .shift() sacamos los elementos del array uno por uno y los imprimimos hasta que no quede ninguno.

馃槃

var estudiantes = ["Maria","Sergio","Rosa","Daniel"]

while(estudiantes.length > 0){
    var estudiante = estudiantes.shift();
    console.log("Hola " + estudiante);
}

Me hubiese gustado m谩s que explicase bien los procedimientos. si shift lo que hace es eliminar el primer elemento de un array. Porque es que sucede esto?

var estudiantes = ["Ram贸n", "Karen", "Brandon", "Angel"];

function saludarEstudiantes(estudiante){
    console.log(`Hola, ${estudiante}`);
}

while (estudiantes.length > 0) {
    console.log(estudiantes);
    var estudiante = estudiantes.shift();
    saludarEstudiantes(estudiante);
}

Yo creo que depende de que estemos utilizando en su momento, porque a veces sabemos cuantas veces necesitamos ejecutar una fraccion de codigo鈥 o a veces requerimos de cierta condicion para hacer algo no importando el numero de veces,

Java 鉂わ笍

Dejo mi opcion sin borrar elementos del array

var studentsName = ['Santiago', 'Ivan', 'Esteban', 'Daniela', 'Jose'];
var counter = 0;

function printNames(name){
    console.log(`Hello ${name}`)
}

while (studentsName[counter]){
    printNames(studentsName[counter])
    counter++;
}
<h1>FOR</h1>

principalmente se utiliza cuando vamos de un numero a otro por ejemplo:

sabemos que el ciclo estara dado de por 10 repeticiones, conocemos la longitud de un Array por poner un ejemplo. Asi que codificamos

for (var n = 1 /*aqui empieza*/; n < MyArray.lentgh /*aqui termina*/; n ++ /*cada ciclo va sumando uno para pasar al siguiente valor*/

<h1>WHILE</h1>

Generalmente no sabemos cuanto tiempo se pueda repetir el cliclo, por que vamos desde un estado a otro estado, pueden ser numericos pero podrian no serlos, podrian ser boobleanos, o strings o el que tu quieras , por ejemplo:

while(numeroX <> 5) {/* Hacer los que esta aqui dentro*/}

Breve explicaci贸n, personalmente enfatizar铆a m谩s en que la variable estudiantes al final del while queda vac铆a por lo tanto como se ha aplicado usando el m茅todo shift, perder铆amos el contenido para usarlo posteriormente si fuese necesario.

Obviamente para explicar como funciona el loop while es correcto pero para la gente nueva quiz谩s vale la pena hacer esa menci贸n especial. 馃槂

Lo 煤nico malo es que despu茅s del while se borra todo el array

Pens茅 que la idea era recorrer el array sin alterar los datos鈥 algo asi:

var estudiantes = ["Maria", "Sergio", "Rosa", "Daniela"];

function saludarEstudiantes(estudiante) {
    console.log(`Hola ${estudiante}`);
}

//En este caso solo leo los elementos del array
//pero conservando todos los datos
var i = 0;

while(i < estudiantes.length){
    saludarEstudiantes(estudiantes[i]);
    i++;
}
/*Resultado

Hola Maria
Hola Sergio
Hola Rosa
Hola Daniela

estudiantes = ["Maria", "Sergio", "Rosa", "Daniela"];
*/

//En este caso leo todos los estudiantes pero elimina el contenido del array
while(estudiantes.length > 0){
  var estudiante = estudiantes.shift();
  saludarEstudiantes(estudiante);
}
/*Resultado

Hola Maria
Hola Sergio
Hola Rosa
Hola Daniela

estudiantes = [];
*/

faltar铆a el ciclo do-while que ejecuta el c贸digo una vez antes de validar si la condici贸n es verdadera o falsa

Tambi茅n tenemos el do鈥hile, qeu es un ciclo que se va a ejecutar minimo una vez 馃槃

una forma de realizarlo como el for y mostrando del ultimo al primero

var notes =["notion", "anki", 1, 2, 3, 4 , 11];
var p=0;
while( p < notes.length )
{
    var item = notes.pop();
    console.log( item);
    p++;
}

Les recomiendo la extension Code Runner para Visual Studio Code, podran ejecutar el codigo directo en el editor.

Visto en clase:

//Ciclo While
var estudiantes = ["Maria","Sergio", "Rosa", "Daniel"];
function saludarEstudiantes(estudiante) {
    console.log('Hola, ${estudiante}');
}
while(estudiantes.length>0){
    console.log(estudiantes)
var estudiante = estudiantes.shift();
saludarEstudiantes(estudiante);
}

Un aporte, mi profesor de la universidad nos recomend贸 que lo vi茅ramos de la siguiente forma el while y el do-while:
WHILE: Primero pregunta y si la condici贸n es verdadera act煤a, luego vuelve a preguntar.
DO-WHILE: Primero act煤a y despu茅s pregunta, si la condici贸n es verdadera, vuelve a actuar y despu茅s pregunta

Despu茅s de aprender Python y entender lo l贸gica de la programaci贸n el resto de los lenguajes son mucho m谩s f谩ciles de entender y aprender.

隆No se rindan!

for - recorre un bloque de c贸digo varias veces
for/in - recorre las propiedades de un objeto
for/of - recorre los valores de un objeto iterable
while - recorre un bloque de c贸digo mientras se cumple una condici贸n espec铆fica
do/while - tambi茅n recorre un bloque de c贸digo mientras se cumple una condici贸n espec铆fica

驴Qu茅 haces viendo comentarios?驴Por qu茅 no mejor miras la clase? 馃ぃ鈦b仯
鈦b仯
鈦b仯
Hola Platzinautas 馃挌鈦b仯
鈦b仯
鈦b仯
馃専Cuando pase por esta clase me propuse hacer unos cuantos ejercicios para de nuevo recordar la l贸gica de estos loops, as铆 que me atrev铆 a realizar un tutorial, si quieren repasar o entender un poco mas con algunos ejercicios, aqu铆 les dejo el link.鈦b仯
鈦b仯
鈦b仯

Nunca pares de aprender.鈦b仯

馃搶Ejercicios para no morir en el intento de aprender馃摎

驴Por qu茅 en mi consola, a la hora de imprimir, no me salen los 4 mensajes, y me lo manda de esta manera?

Gracias por el apoyo
saludos!

Tengamos cuidado de usar shifth() y pop() ya que elimina los elementos.

Reemplace el shift por el pop y para que sirve en este ejercicio el 鈥淧op鈥 puede ser para ver quien llego tarde 馃槢

var estudiantes = ["Daniel","Laura","Sergio", "Rosa"];

function saludarEstudiantes (alumno){
    console.log (`Hola, ${alumno}`);
}

while (estudiantes.length > 0 ){
    var alumno = estudiantes.pop();
    saludarEstudiantes(alumno);
}

MUY IPORTNATE:
En el ciclo WHILE: el bloque de c贸digo se puede ejecutar 0 o m谩s veces dependiendo de la condici贸n.
En el ciclo DO WHILE: el bloque de c贸digo siempre se ejecutar谩 1 vez aunque no se cumpla la condici贸n.
.
Fuente: https://www.w3schools.com/js/js_loop_while.asp

  • En un bucle while la variable es declarada antes del loop y es accedida al estar en el scope global.
  • Empieza el bucle con la palabra while seguida de la condici贸n de parada o condici贸n a evaluar. Esta ser谩 evaluada antes en cada ronda del bucle. Mientras la condici贸n evalue true, el bloque seguir谩 corriendo. Una vez que evalue false el bucle se detendr谩.
  • Finalmente tenemos el bloque de c贸digo del bucle.

Tambi茅n existe un tercer ciclo llamado 鈥渄o鈥hile鈥, recomiendo que lo investiguen 7u7

Breve explicaci贸n sobre lo que pasa con la variable estudiante y Shift(). No pod铆a entender lo que pasaba ya que seg煤n mi l贸gica deber铆a salir Sergio de primero pues estamos quitando el primero del Array fuente de inspiraci贸n aqu铆 la colega de Platzi:
Bueno ahora s铆 al grano, mi funci贸n no sucede con el Array en si, m谩s bien en la variable estudiante, nuestro While utiliza nuestro Array solo de condicional; si sucede esto pasa lo otro y si no me paro. lo que precisamente hace const estudiante = estudiantes.shift(); es quitar del Array lo que est茅 en la posici贸n 0 y guardarla en estudiante. Todo lo vi m谩s claro cuando hice un console.log() a estudiante.
adjunto el c贸digo y foto:

const estudiantes = ["Maria", "Sergio", "Rosa", "Daniel"];
        function saludarEstudianres(estudiante) {
            console.log(`Hola, ${estudiante}`);
        }
        while (estudiantes.length > 0) {
            console.log(estudiantes);
            const estudiante = estudiantes.shift();
            console.log(`Yo soy la constante con .shift ${estudiante}`);
            saludarEstudianres(estudiante);
        }

Mucho ojo con el tema del While puede ponerte lenta la compilacion o incluso el PC si la pechas en logicas grandes.

Con While no tenemos conocimiento del n煤mero de iteraciones a realizar, con For lo sabemos de antemano

Por si alguien no lo sabe (como yo antes de ver este video y buscar la documentacion) el metodo array.shift no solo elimina el primer elemento, tambien devuelve ese mismo elemento eliminado.

Buena manera de explicar el while, pero te cargas el array :麓(

var estudiantes = ["Paco", "Pepe", "Marco", "Jose"];
function saludarEstudiante(estudiante){
    console.log(`Hola, ${estudiante}`);
}
while(estudiantes.length > 0){
  console.log(estudiantes);
  var estudiante = estudiantes.shift();
  saludarEstudiante(estudiante);
}

Aparte de la interpolaci贸n, te pueden generar problemas los ; si es que vienes de otros lenguajes鈥

Aqui va el resumen de la clase como lo entendi.

// con .pop() de ultimo a primero.
var estudiantes = [鈥淢aria鈥, 鈥淪ergio鈥, 鈥淩osa鈥, 鈥淒aniel鈥漖;

function saludarEstudiante(estudiante) {
console.log(Hola ${estudiante});
}

while (estudiantes.length > 0) {
var estudiante = estudiantes.pop();
saludarEstudiante(estudiante);
}
Hola Daniel
Hola Rosa
Hola Sergio
Hola Maria

El ejemplo hubiera quedado mejor si la funcion en lugar de saludarEstudiantes fuera expulsarEstudiantes

Resumen de el temario de loops.

  • For con variable i

Para esto debemos de crear una variable que com煤nmente denominaremos como i con la que haremos que la condici贸n sea correcta hasta que se detenga, tambi茅n se debe recordar irla aumentando con i++ que es la abreviaci贸n de i = i+ 1.

  • Ejemplo

for(var i=0; i<10 ; i++){

//acci贸n a realizarse

}

  • For con array en plural sac谩ndolos en singular

En el primer ejemplo el manda a llamar la variable estudiante y no estudiantes, el cu谩l es el nombre simplemente del par谩metro.

En el segundo ejemplo se propone a estudiante como el singular de estudiantes鈥 pero de hecho funciona con cualquier valor que se asigne y no obedece a la lectura o forma textual de la variable.

B谩sicamente lo que hace es repetir la acci贸n por cada elemento que exista en el array.

  • Ejemplo

var estudiantes[ 鈥淢ario鈥, 鈥淐arlos鈥, 鈥淩a煤l鈥 ];

for

(var estudiante of estudiantes) {

//acci贸n a realizarse

}

  • For in

La variable se va incrementando depende de cada una de la posiciones de 0鈥

en resumen recorre la propiedades de un objeto


  • While

Este ciclo se suele usar para cuando no sabemos cuantas veces se debe repetir.

La traducci贸n de while en espa帽ol es mientras. Por lo tanto, la sentencia while se puede entender como "mientras se cumpla la condici贸n, ejecuta el siguiente bloque de c贸digo entre llaves.

while(condicion){

//Acciones a realizar

}

  • Tambi茅n existe otro ciclo llamado do while que hace lo mismo que el while solo que la primera vez entra al ciclo sin evaluar la condici贸n, es decir al menos ejecuta el bloque una vez pero no se trato en esta clase.

Para no borrar los elementos los podemos iterar con:

codigo

let paises = ['Brasil', 'Peru', 'Colombia']
let i = 0, len = paises.length
while(i < len)
    console.log(paises[i++]);

este loop junto con el do while me parece mas interesante que el for.

Otra forma

`<code>
var productos = ["Pasta", "Pizza", "Pollo", "Hamburguesas"];

function tenemosProductos(producto){
    console.log(`Tenemos ${producto}`);
}

while(productos.length > 0){
    var producto = productos.shift();
    tenemosProductos(producto);
}
var estudiantes = ["Mar铆a", "Sergio", "Rosa","Daniel"];

function saludarEstudiantes(estudiante){
    console.log('隆Hola '+ estudiante + "!");
}

for (var i=0; i < estudiantes.length; i++){
    saludarEstudiantes(estudiantes[i]);
}

var estudiantes = ["Mar铆a", "Sergio", "Rosa","Daniel"];

function despedirEstudiantes(estudiante){
    console.log('隆Adi贸s '+ estudiante + "!");
}

for (var estudiante of estudiantes){
    despedirEstudiantes(estudiante);
}```

// Array.
var estudiantes = ["Pedro", "Maria", "George", "Piero", "Sergio"];

// Funci贸n.
function saludoEstudiante(estudiante) {
    console.log(`Hola, ${estudiante}.`);
}

// For con variable i.
for (i = 0; i < estudiantes.length; i++){
    saludoEstudiante(estudiantes[i]);
}

// For-of
for( var estudiante of estudiantes){
    saludoEstudiante(estudiantes;
}

// While
while (estudiantes.length > 0) {
    var estudiante = estudiantes.shift();
    saludoEstudiante(estudiante);
}```

驴Cu谩l prefieres?
Bucle For, For of u While?

C贸digo de esta clase

// Bucle While en JS

//El bucle while realiza una serie de instrucciones mientras se cumpla una condici贸n dada.

var estudiantes = ["Julieta", "Paco", "Joel", "Astrid", "Liam"];

function mensaje(estudiante){
    console.log(`Hola ${estudiante}, bievenido al Curso Basico de Javascript`);
}

while(estudiantes.length > 0){
    var estudiante = estudiantes.shift();
    mensaje(estudiante);
}

muy bueno el recorrido del array, eliminando simultaneamente elementos. 馃槈

var estudiantes = ["Francisco", "Juan", "Cristian", "Liz", "Paola"];


function saludarEstudiantes(estudiante){
    console.log(`Hola, ${estudiante}`);
}

while (estudiantes.length > 0) {
    console.log(estudiantes);
    var estudiante = estudiantes.shift();
    saludarEstudiantes(estudiante);
}```

/* Es cierto que falta el do 鈥 while, aqui dejo su equivalente al ejemplo que se esta manejando, usando do while, me fuen bien
*/
var result = 鈥溾;
var i = 0;

do {
i = i + 1;
result = result + i;
} while (i < 5);

console.log(result);
/* el resultado seria la cadena: "12345"
debido al tipo de variable, ademas nos permte
darnos cta del bucle que efectua.
*/

var apostoles=[鈥淛uan鈥,鈥淧edro鈥,鈥淒aniel鈥,鈥淏artolome鈥, 鈥淢ateo鈥, 鈥淪antiago el Menor鈥,
鈥淛udas Tadeo鈥, 鈥淎ndres鈥,鈥淔elipe鈥, 鈥淭omas鈥, 鈥淪antiago el Anciano鈥
];

function saludarApost(apostol) {
document.write(Hola , ${apostol}+"<br />");
}

do {
console.log(apostoles);
var apostol=apostoles.shift();
saludarApost(apostol);
}while (apostoles.length > 0);
//por que se imprime el ultimo valor, pues por que esta sentencia 1ero ejecuta el codigo y luego evalua 馃槂

Miren qu茅 interesante. Prob茅 quitando el par谩metro de la funci贸n y aun as铆 funciona sin problema, alguien sabe porqu茅? Lo otro es que en la 4 l铆nea del c贸digo sustitu铆 鈥渆studiante鈥 por 鈥渆studiantes鈥 y en el resultado se evidencia de igual manera como va funcionando cada uno de los ciclos individualmente.

var estudiantes = ["Maria","Sergio","Rosa","Daniel"];

    function saludarEstudiantes (){
    console.log("Hola "+ estudiantes);
    }
    while (estudiantes.length>0) {
    var estudiante = estudiantes.shift()
    saludarEstudiantes ()
    }

VM1316:4 Hola Sergio,Rosa,Daniel
VM1316:4 Hola Rosa,Daniel
VM1316:4 Hola Daniel
VM1316:4 Hola 

Creando el _while_. Sintaxis _while_(a) {b}. Mientras _a_ sea _true_ el loop seguir谩 ejecutando _b_, y se detendr谩 cuando la condic贸n _a_ ya no se cumpla, es decir sea falso.

While y Do While

Tarea de Piedra papel o tijera con while, Listo para copiar y pegar en la consola del navegador:

var mensaje = confirm("驴Quiere jugar a Piedra, Papel o tijera ?");
while(mensaje){
    var usuario = prompt("驴Indique su opcion numerica: 1-Piedra, 2-Papel o 3-Tijera", "");
    if(usuario > 0 && usuario < 4){
	var maquina = parseInt(Math.random() * 3);
	validar();	
    }else{
       alert("Opcion no valida");
    }
    mensaje = confirm("驴Quiere jugar a Piedra, Papel o tijera ?");
}

function validar(){
    maquina++
    alert(`usuario selecciono: ${opciones[usuario-1]}, maquina selecciono: ${opciones[maquina-1]}`);
    if(maquina == 1 && usuario == 2 || maquina == 2 && usuario == 3 || maquina == 3 && usuario == 1 ){
	alert(`GANA USUARIO`);
    }
    if( maquina == 2 && usuario == 1 || maquina == 3 && usuario == 2 || maquina == 1 && usuario == 3 ){
	alert('GANA MAQUINA');
    }
    if(maquina == usuario){
	alert('EMPATE');
    }
}

La verdad yo batallo demasiado con los loops, se me hacen muy dificiles a la hora de saber el como lo hare funcionar, se lo que hacen pero me cuesta mucho el poder pensar algo de como hacerlo funcionar.

Aun no entiendo la diferencia entre imprimir de esta forma

console.log("Hola "+estudiante);

a imprimir de esta forma

console.log(`Hola ${estudiante}`);

Lo intento de las dos formas y el resultado es exactamente el mismo.

Cu谩nto me habr铆a ahorrado esto a principios de carrera XD

Excelente explicaci贸n!!!

Excelente clase.

Impecable, excelente explicaci贸n!

Cuando se use el while con una variable iteradora, hay que asegurarse de incrementar su valor con el operador ++ de lo contrario sucede un bucle infinito y el navegador crashea.

While no se conoce la longitud previamente, for si se conoce.

Ciclos

Hay que tener mucho cuidado al momento de utilizar el .shift, debido a que deja el Array vac铆o, y ese no es el objetivo.

Si quieres volver a Saludar a los estudiantes invocando la funci贸n, debes volver a cargar el Array.

saludarEstudiantes();
Hola, undefined
undefined

var estudiantes = ["Maria", "Sergio", "Rosa", "Daniel"];

function saludarEstudiantes(estudiante){
    console.log(`Hola, ${estudiante}`);
}

while(estudiantes.length > 0){
    console.log(estudiantes);
    var estudiante = estudiantes.shift();
    saludarEstudiantes(estudiante);
}

Me parece un poco enredado que use la variable estudiante para distintas cosas, me cost贸 un poco entender que pasaba dentro del while y por qu茅 funcionaba bien
es porque dentro, la variable estudiante est谩 guardando el elemento borrado con shift, y ese es el valor que se esta usando como par谩metro en la funcion saludarEstudiantes(), pero como se ve igual a lo de arriba que dice 鈥渇unction saludarEstudiantes(estudiante)鈥 me confundi贸

se que todos son muy buenos pero me paso que no sabia como dar enter sin que se 鈥渆jecutara鈥, Shif + enter, y si borras todo y limpias y quieres traer el c贸digo anterior , flecha hacia arriba, cosas que aprend铆 fastidiando mi pobre teclado ajajjjajaja

Gracias profe por la explicaci贸n鈥

隆Gran trabajo! Realmente comprend铆 much铆simo este m贸dulo de los ciclos.

GOD FIRST

ac谩 una aclaraci贸n

<var frutas = ["uvas", "Manzana", "Platano", "Cereza", "Fresa"];
var QuitarFruta = frutas.shift("uvas")

//elimina el inicio pero guarda en la variable ese valor que elimin茅, es por eso que puedo guardar en una variable un shift y puedo mostrar el valor 
//a pesar de que lo hayas eliminado del inicio porque el elemento que quitaste se esta guardando en la variable
> 

Hello mi aporte,

var computadoras = ['Mac','Acer','HP','Huawei'];

function mostrarComputadoras (computadora){
    console.log(`Computadora marca ${computadora}`);
}

while(computadoras.length>0){
    var computadora = computadoras.shift()
    mostrarComputadoras(computadora);
}

{鈥⑻僟鈥⑻儅

var estudiantes = [鈥淢aria鈥, 鈥淪ergio鈥, 鈥淩osa鈥, 鈥淒aniel鈥漖;

function saludarEstudiantes(estudiante){
console.log(Hola. ${estudiante});
}

while(estudiantes.length>0){
console.log(estudiantes);
var estudiante = estudiantes.pop();
saludarEstudiantes(estudiante);
}

Hace lo mismo pero en lugar de extraer el primer dato, te va extrallendo el ultimo.

Lo realice de la siguiente manera.

var estudiantes = ["maria", "sergio", "rosa", "daniel"];

var a = 0;

function saludarEstudiantes(estudiante) {
    console.log(`hola, ${estudiante}`);
}

while (a < estudiantes.length) {
    var estudiante = estudiantes[a];
     a++;
    saludarEstudiantes(estudiante);
   
}

LOOPS O CICLOS
驴C贸mo generarlos con un while?
Array:

var estudiantes = ["Mar铆a", "Sergio", "Rosa"];

Tarea:

function saludar(estudiante){
console.log("Hola, ${estudiante)");
}

Ciclo con un while:

while (estudiantes.length > 0){
        var estudiante = estudiantes.shift();
        saludar(estudiante);
}

NOTAS:

  • Mientras el tama帽o del array sea mayor a 0 se repite lo que escribo dentro del while.
  • El while lo que hace es obtener el elemento que est谩 en la primera posici贸n y lo guarda en una variable que despu茅s env铆a a la tarea que llama (recordar que shift elimina el elemento, entonces, en cada vuelta el tama帽o del array va disminuyendo, hasta quedar en 0 que es cuando el while se detiene).

El uso de:

estudiantes.shift()

Puede resultar muy pr谩ctico para algunos casos de uso cuando no sea necesario conservar la informaci贸n del arreglo, o cuando sea necesario eliminar ciertos elementos.

Hice de otra forma el ejercicio que hizo Diego, ac谩 lo comparto:

var estudiantesNombres = ['Maria', 'Sergio', 'Rosa', 'Daniel']

function saludar () {
    i = 0
    while (i <= estudiantesNombres.length) {
        console.log (`Hola! ${estudiantesNombres[i]}`)
        i++
}
}

saludar()

Para iterar sobre los elementos del array sin eliminarlos, puedes utilizar una variable 铆ndice y comprobar si el 铆ndice es menor que la longitud del array en cada iteraci贸n del bucle while. Aqu铆 te muestro un ejemplo de c贸mo hacerlo:

var estudiantes = ["Pedro", "Domingo", "Hulk", "Tony"];
var indice = 0;

function saludarEstudiantes(estudiante){
  console.log(`Hello, ${estudiante}. Es un gusto saludarte.`);
}

while(indice < estudiantes.length){
  var estudiante = estudiantes[indice];
  saludarEstudiantes(estudiante);
  indice++;
}