No tienes acceso a esta clase

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

Curso Pr谩ctico de JavaScript

Curso Pr谩ctico de JavaScript

Juan David Castro Gallego

Juan David Castro Gallego

Ciclos

6/29
Recursos

Aportes 174

Preguntas 11

Ordenar por:

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

o inicia sesi贸n.

Es extra帽o que no hayan puesto este meme鈥

Yo cambiar铆a la definici贸n de Juan por 鈥淟a forma de ejecutar un bloque de c贸digo mientras una condici贸n sea verdadera o se cumpla鈥

Yo lo hice un pel铆n distinto:

let resultado = prompt("驴Cuanto es 2 + 2?")

while(resultado != 4){
    resultado = prompt("驴Cuanto es 2 + 2?")
}

alert("Felicitaciones!!");

Aqu铆 usando una variable para controlar el while:

let keep_on = true;

let sum = 0;

while(keep_on){
    sum = prompt("驴Cu谩nto es 2+2?")
    if (suma==4){
        console.log("Felicidades");
        keep_on = false;
    }
}

Ciclos

1.Responde las siguientes preguntas en la secci贸n de comentarios:
驴Qu茅 es un ciclo?

  • La forma de ejecutar un bloque de c贸digo hasta que se cumpla cierta condici贸n.

驴Qu茅 tipos de ciclos existen en JavaScript?

  • While, do while y for.

驴Qu茅 es un ciclo infinito y por qu茅 es un problema?

  • Es cuando la validaci贸n de nuestros condicionales nunca se cumple y termina da帽ando la aplicaci贸n

驴Puedo mezclar ciclos y condicionales?

  • S铆, aunque los ciclos son una especie de condicionales, nada nos impide agregar m谩s condicionales dentro del ciclo.

2锔.Replica el comportamiento de los siguientes ciclos for utilizando ciclos while:

for (let i = 0; i < 5; i++) {
    console.log("El valor de i es: " + i);
}
for (let i = 10; i >= 2; i--) {
    console.log("El valor de i es: " + i);
}
//RESOLUCION
while (i < 5) {
    console.log("El valor de i es: " + i);
    i++;
}
while (i >= 2) {
    console.log("El valor de i es: " + i);
    i--;
}

3锔.Escribe un c贸digo en JavaScript que le pregunte a los usuarios cu谩nto es 2 + 2. Si responden bien, mostramos un mensaje de felicitaciones, pero si responden mal, volvemos a empezar.

馃挕 Pista: puedes usar la funci贸n prompt de JavaScript.

while (respuesta != '4') {
    let pregunta = prompt('驴Cu谩nto es 2 + 2?')
    respuesta = pregunta;
}

Buenas , ojo que adem谩s de frenar el ciclo el problema ped铆a agregar una felicitaci贸n al usuario 鈥s铆 lo hice yo saludos !
(adem谩s agregue la funci贸n parseint para transformar cualquier respuesta del usuario a n煤meros enteros )

let respuestaDelUsuario 

while(respuestaDelUsuario != 4){
    pregunta=parseInt(prompt("cuanto es 2+2?"))
    if (pregunta==4){alert("felicidades sabes sumar")}
    respuestaDelUsuario=pregunta
}

Hola PlatziNautas. 馃懇鈥嶐煔馃懆鈥嶐煔

En la versi贸n anterior a este curso cree unos ejercicios sobre ciclos, si quieren practicar un poco m谩s aqu铆 les dejo el link.

隆Saludos! 馃挌

Ejercicios Ciclos 馃じ鈥嶁檧锔忦煠糕嶁檪锔

No se si me estaba complicando la vida ya que la soluci贸n que hice fue con funciones, pero ya viendo esta clase era m谩s f谩cil hacerla con while. Igual les comparto mi soluci贸n:

function preguntar() {
    var resultado = prompt("驴Cuanto es 2 x 2?")
    validar(resultado);
}

function validar(resultado){
    if(resultado === "4"){
        console.log("Felicitaciones");
    }else{
        preguntar();
    }
}

preguntar();

Yo lo hice con un do while porque sinceramente no sab铆a como hacer el ejercicio y fue lo 煤nico que se me ocurri贸 xD

var respuestas;
do {respuestas = prompt('cuanto es dos mas dos')} while (respuestas != 4);

alert('felicitaciones');

As铆 lo hice, aplicando recursividad que es cuando una funci贸n se llama a si mismo (que ser铆a algo parecido a un ciclo):

let num1 = 2;
let num2 = 2;
const result = num1 + num2;


function quizzer() 
{
    let resultp = prompt("The result of "+ num1 + " + " + num2 + " = ");

    if (parseInt(resultp) === result)
    {
        console.log("Congratulations that is the answer")
    } else 
    {
        console.log("That is not the answer, try again");
        quizzer();
    }
}

quizzer();

Esta es una de las preguntas que no contest茅 porque no sab铆a que prompt era una funci贸n que brinda el navegador ni c贸mo utilizarla. Pero entiendo como utilizarla y complet茅 el ejercicio como en la clase, realmente antes de hacerla se me hab铆a ocurrido la misma solici贸n.

while(respuesta != '4'){
    pregunta = prompt("Cuanto es 2 + 2");
    respuesta = pregunta;
}
'4'

En el 煤ltimo le falt贸 felicitar al usuario, me parece que podr铆a enviar la felicitaci贸n directamente afuera del while, yo lo hice con el do while por si alguno quisiera tener esta versi贸n:

let respuesta = 0;
do {
   	respuesta = prompt("Cu谩nto es 2 + 2?");
   	if(respuesta == 4) console.log("FELICIDADES!");
} while (respuesta != 4);

En conclusi贸n es necesario y pertinente entender que los ciclos permiten anidar condicionales sin ser directamente condicionales, es decir que por medio de un ciclo podemos entender que 茅ste se ejecuta mientras la validaci贸n se lleve a cabo, este es un peque帽o aporte para las personas que tal vez tuvieron dificultades o presentaron confusi贸n con respecto al hecho de que los ciclos tienen condiciones para su ejecuci贸n, entiendo que para muchos puede ser absurda 茅sta explicaci贸n, pero recuerden que la pedagogia se trata de transmitirle conocimiento a aquellas personas que a煤n no lo tienen, saludes desde Bogot谩 Colombia, desde ya muchas gracias.

Usando do while

let respuesta;
do{
    respuesta = parseInt(prompt("Cu谩nto es 2+2? "));
    if(respuesta === 4){
        alert("Felicitaciones, respuesta correcta");
    }
}while(respuesta!=4)

Estoy tomando el nuevo curso de Programaci贸n B谩sica y la verdad me esta ayudando mucho en cuanto termine ese paso a este curso la verdad me esta gustando mucho.

Lo hice un tris distinto 馃槂 funciona muy bien!!

let answer = prompt("how much is 2+2?");
const valid = true

while(valid){
    if(answer ===4){
        alert("congratulations!! the answer is correct");
        valid = false;
    }else{
        answer = prompt("how much is 2+2?");
    }
};

buen truco de MD, gracias maistro

let respuesta;

while (respuesta != "4") {
    respuesta = prompt("Cuanto es dos mas dos?");
}

Ciclos

1锔忊儯 Responde las siguientes preguntas en la secci贸n de comentarios:
驴Qu茅 es un ciclo?
son bucles utilizados para realizar tareas repetitivas con base en una condici贸n
驴Qu茅 tipos de ciclos existen en JavaScript?

  • for
  • for鈥f
  • while
  • do 鈥 while

驴Qu茅 es un ciclo infinito y por qu茅 es un problema?
Es un ciclo que se repite n cantidad de veces, podemos decir que es un ciclo infiinito por que la condici贸n que lo detiene no se cumple, esto puede generar problemas de rendimiento y colapsar la memoria de los equipos donde se ejecuta este bucle.
驴Puedo mezclar ciclos y condicionales?
Si los ciclos y las condiciones se utilizan com煤nmente en combinaci贸n para lograr una l贸gica de programaci贸n especifica.

2锔忊儯 Replica el comportamiento de los siguientes ciclos for utilizando ciclos while:

for (let i = 0; i < 5; i++) {
     console.log("El valor de i es: " + i);
}

// While 
let i = 0;
while ( i < 5 ) {
 	console.log("El valor de i es: " + i);
  	i++;
}


for (let i = 10; i >= 2; i--) {
    console.log("El valor de i es: " + i);
}

// While
let i = 10;
while ( i >= 2 ) {
 	console.log("El valor de i es: " + i);
  	i--;
}

3锔忊儯 Escribe un c贸digo en JavaScript que le pregunte a los usuarios cu谩nto es 2 + 2. Si responden bien, mostramos un mensaje de felicitaciones, pero si responden mal, volvemos a empezar.
馃挕 Pista: puedes usar la funci贸n prompt de JavaScript.

//Quiz
let valOne = 2;
let valTwo = 2;
const result = valOne + valTwo;

function quiz() {
	let userInput = prompt( `Cuanto es ${num} + ${num2}` );

  	if (userInput == result) {
   		alert("Felicitaciones, respondiste correctamente el desafio");
  	} else {
    		alert("lamentablemente, tu respuesta es incorrecta, sigue practicando!");
  	}
}

quiz();

Buenas noches a todos鈥 Creo que en esta explicaci贸n del ultimo ejercicio fue un poco confuso y sobre todo corregir铆a realizar casting en mis variables para que uno aprenda a realizarlo.

Comporto mi c贸digo debido a que pides una suma 2 + 2 por lo tanto tu variable debe ser si o si Number.

let respuesta = parseInt(prompt(鈥淐uanto es 2 + 2鈥));

while (respuesta !== 4)
{
console.log(鈥渧olver a empezar鈥);
respuesta = parseInt(prompt(鈥淐uanto es 2 + 2鈥));
}
if ( respuesta == 4)
{
console.log(鈥渇elicitaciones鈥);
}

Es un humilde comentario y con mucho respeto Profr. Juan David.

//For
for (let i = 0; i < 5; i++) {
    console.log("El valor de i es: " + i);
}


for (let i = 10; i >= 2; i--) {
    console.log("El valor de i es: " + i);
}


//While, aqui debemos crear aparte la variable para ejecutar el ciclo
let i = 0;

while (i < 5) {
    console.log("El valor de i es: " + i);
    i++;
}


let i = 10;

while (i >=2) {
    console.log("El valor de i es: " + i);
    i--;
}



let respuesta;

while (respuesta != "4") {
    let pregunta = prompt("驴Cuanto es 2 + 2?");
    respuesta = pregunta;
}

Yo estaba como loco tratando de buscar un input como en python y vi que prompt solo est谩 disponible en el console de los navegadores xDDDDD

un ciclo en mi humilde opini贸n es la cantidad de veces que se ejecuta un c贸digo hasta que se deja de cumplir la condici贸n

Yo us茅 un ciclo do-while para el ultimo ejercicio

let calculo = 0;
do {
    calculo = prompt("Cuanto es 2+2?");
} while (calculo != 4);
alert("Felicitaciones");

馃槂 Ciclos
1.- Responde las siguientes preguntas en la secci贸n de comentarios:
驴Qu茅 es un ciclo?
Es un fragmento de c贸digo con una o varias sentencias que se ejecuta repetidas veces mientras cumpla con la condici贸n establecida.
驴Qu茅 tipos de ciclos existen en JavaScript?
for, for鈥n, for鈥f, while y do鈥hile
驴Qu茅 es un ciclo infinito y por qu茅 es un problema?
Es un ciclo que se repite de forma indefinida debido a que siempre se cumple la condici贸n establecida. Y es un problema porque genera una sobrecarga en el sistema.
驴Puedo mezclar ciclos y condicionales?
S铆.

2.- Replica el comportamiento de los siguientes ciclos for utilizando ciclos while:

for (let i = 0; i < 5; i++) {
    console.log("El valor de i es: " + i);
}
// ---------- Soluci贸n ----------
let i = 0;
while (i < 5) {
    console.log("El valor de i es: " + i);
    i++;
}
for (let i = 10; i >= 2; i--) {
    console.log("El valor de i es: " + i);
}
// ---------- Soluci贸n ----------
let i = 10;
while (i >= 2) {
    console.log("El valor de i es: " + i);
    i--;
}

3.- Escribe un c贸digo en JavaScript que le pregunte a los usuarios cu谩nto es 2 + 2. Si responden bien, mostramos un mensaje de felicitaciones, pero si responden mal, volvemos a empezar.
Pista: puedes usar la funci贸n prompt de JavaScript.

do{
    var respuesta = prompt('驴Cu谩nto es 2 + 2?');
    respuesta *= 1;
}while(respuesta !== 4)
alert('隆Felicitaciones!');

Usar for cuando se conoce de antemano, cuantas iteraciones necesitamos realizar. En cambio usar el ciclo while cuando no se conozca.
Por supuesto en lo anterior pueden hacer excepciones (un for se puede cancelar antes de su culminaci贸n programada)

let respuesta = "1969";
    let preguntar = function(){
        let pregunta = prompt("En que a帽o lleg贸 el hombre a la luna? 馃殌馃寱");
        if(pregunta == respuesta){
            alert("Es correcto!")
        }else{
            alert("Incorrecto! presiona OK y trata nuevamente.")
            preguntar();
        }
    };
preguntar();

let respuesta=0
do{
respuesta=prompt("驴cuanto es 2+2?");
}while(respuesta!=4);alert(鈥楩ELICITACIONES鈥);

let repuesta = 4;
do {
	respuesta = promt(''驴Cu谩nto es 2 + 2?);
} while (respuesta != 4)
alert (''Felicitaciones'');

ez

let respuesta;

do {
    respuesta = prompt('Cuanto es 2 + 2');
} while (respuesta != '4')
  • 驴Qu茅 es un ciclo?
    Un ciclo, tambi茅n conocido como bucle, es una estructura de control que permite repetir un bloque de c贸digo varias veces hasta que se cumpla una condici贸n de salida.

  • 驴Qu茅 tipos de ciclos existen en JavaScript?
    En JavaScript, existen varios tipos de ciclos:

    • for: Permite ejecutar un bloque de c贸digo un n煤mero espec铆fico de veces.
    • while: Ejecuta un bloque de c贸digo mientras una condici贸n sea verdadera.
    • do...while: Ejecuta un bloque de c贸digo al menos una vez y luego repite la ejecuci贸n mientras una condici贸n sea verdadera.
  • 驴Qu茅 es un ciclo infinito y por qu茅 es un problema?
    Un ciclo infinito es un bucle que se repite continuamente sin cumplir una condici贸n de salida. Es un problema porque el programa queda atrapado en un bucle sin fin, lo que puede llevar a un consumo excesivo de recursos y bloquear la ejecuci贸n del programa.

  • 驴Puedo mezclar ciclos y condicionales?
    S铆, se pueden combinar ciclos y condicionales. Puedes utilizar estructuras condicionales dentro de un ciclo para controlar cu谩ndo se debe salir del ciclo o realizar ciertas acciones seg煤n una condici贸n.

2锔忊儯 Replica el comportamiento de los siguientes ciclos for utilizando ciclos while:

for (let i = 0; i < 5; i++) {
    console.log("El valor de i es: " + i);
}

for (let i = 10; i >= 2; i--) {
    console.log("El valor de i es: " + i);
}
//mi Soluci贸n
let i = 0;

while (i < 5) {
  console.log("El valor de i es: " + i);
  i++;
}

let i = 10;

while (i >= 2) {
  console.log("El valor de i es: " + i);
  i--;
}

3锔忊儯 Escribe un c贸digo en JavaScript que le pregunte a los usuarios cu谩nto es 2 + 2. Si responden bien, mostramos un mensaje de felicitaciones, pero si responden mal, volvemos a empezar.

let respuesta = "";

while (respuesta !== "4") {
  respuesta = prompt("驴Cu谩nto es 2 + 2?");
}

console.log("隆Felicitaciones! Respondiste correctamente.");

en costestaci贸n a la pregunta 3 en este bloque, creo que juan se ha quedado a medias ya que ped铆a mostrar un mensaje de felicidades si introducias el n煤mero correcto, yo lo he hecho as铆 y funciona:

var respuesta;

while(respuesta != '4'){
    let pregunta = prompt('驴Cuanto es 2 +2?');
    respuesta = pregunta;

    if(respuesta == '4'){
        document.write("Felicidades, has escrito la respuesta correcta")
    }
}

Mis apuntes en Notion 馃槃

APUNTES

lo realice de esta forma, alguien puede opinar que tal 馃槂

let pregunta = prompt('Cuanto es 2+2?: ');
while (pregunta != 4) {
    let rectificarpregunta = prompt('Error,Cuanto es 2+2?: ');
    if (rectificarpregunta == 4) {   
        break;
    }
}
alert('Felicidades :)')

Creo que el profe olvid贸 la parte de felicitaciones en la parte de 2 + 2. Yo us茅 un ciclo diferente.

do{
    var respuesta = prompt(`驴Cu谩nto es 2 + 2?`);
}while(respuesta != 4);
console.log("FELICITACIONES!")

me funciono de la siguiente manera:

let resultado;

 while (resultado != 4){
    resultado = prompt("驴cuanto es 2 + 2?")
    
 }
alert("felicidades es 4")

rayos a mi me quedo mas largo

let user = parseInt(prompt("Hola usuario cuanto es 2 mas 2 "));
let intentos = 0;
if (user == 4 ) {
   intentos++
   alert ("Felcidades es correcto, hicistes " + intentos + " intentos");
} else {
   alert("valor incorrecto")
  while (user !== 4) {
      user = parseInt(prompt("vuelve a intenetar"))
      intentos++
  }
   alert ("Felcidades es correcto, hicistes " + intentos + " intentos");
}

let respuestaMatematica = parseInt(prompt(鈥櫬緾u谩nto es m谩s 2 + 2?鈥));
while ( respuestaMatematica !== 4 ) {
respuestaMatematica = parseInt(prompt(鈥榁olv茅 a intentar. 驴Cu谩nto es 2 + 2?鈥));
}
if( respuestaMatematica === 4 ) {
alert(鈥楤ien respondido.鈥);
}

let resultado;

while (resultado != 4){
let pregunta = prompt(鈥楥u谩nto es 2 + 2 ?鈥);
resultado = pregunta;
if (resultado == 4){
alert(鈥楩elicitaciones鈥)
}else {
alert(鈥楴o sabes sumar鈥)
}
}

Yo lo hice de esta forma:

let answer = prompt('Cu谩nto es 2 + 2?');

while(answer != 4)
{
  alert("Respuesta Incorrecta...");
  answer = prompt('Cu谩nto es 2 + 2?');
}

alert('Felicidades, respuesta correcta.');

Hola, esta es una forma de ejecutar el mispo programa con los tres diferentes ciclos que se pueden usar en JavaScript. El programa realizara en cada ciclo un conteo iniciando desde el cero hasta noventa y nueve.

 // Ciclo for
for (let i = 0; i < 100; i++) {
    console.log(`for : ${i}`);
}

// Ciclo while
let i = 0;
while (true) {
    console.log(`while : ${i}`);
    i++;
    if (i === 100) {
        break;
    }
}

// Ciclo do while
i = 0;
do {
    console.log(`do while : ${i}`);
    i++;
} while (i < 100)

Mi solucion apoyandome con ustedes especialmente en el ciclo while del 3er punto

//Replica el comportamiento de los siguientes ciclos for utilizando ciclos while:


for (let i = 0; i < 5; i++) {
    console.log("El valor de i es: " + i);
}

for (let i = 10; i >= 2; i--) {
    console.log("El valor de i es: " + i);
}



//-----------SOLUCION

let i = 0;
let text = "";
while (i < 5){
    text += "<br>The number is " + i;
     i++
  
  
}

let i2= 10;
let text2 = "";
while (i2 >= 2){
    text2 += "<br>The number is " + i2;
     i2--

    

}



//3锔忊儯 Escribe un c贸digo en JavaScript que le pregunte a los usuarios cu谩nto es 2 + 2.
// Si responden bien, mostramos un mensaje de felicitaciones, pero si responden mal, volvemos a empezar.


let pregunta = prompt ("驴cu谩nto es 2 + 2?")


    while (pregunta != 4){
      let pregunta2=  prompt ("驴cu谩nto es 2 + 2?")
    
      if (pregunta2 == 4){
        alert("felicitaciones")
      }
    
     pregunta=pregunta2
    }
   

Yo hice el m铆o de esta forma: Usando el === y cambiando el data type que retornaba el prompt:

let x = true;
while (x){
  answer = parseInt(prompt("Cuanto es 2+2?"));
  if (answer === 4){
    console.log("Felicitaciones")
    x = false;
  } else {
    console.log("No es correcto")
  }  
}
Qu茅 molestia que al querer leer las dem谩s respuestas en los comentarios la p谩gina me redirija a una nueva, perdiendo as铆 el avance de la clase

Asi quedo el c贸digo

while (true){
    let result = prompt("驴C煤al es el resultado de 2 + 2? ");
    if (result==="2"){
        alert("es verdad.");
        break;
    }
    else{
        
        alert("vuelva a intentar");
    }

}

}

馃鉁

En pocas palabras. Un ciclo es la ejecuci贸n de un bloque de c贸digo mientras se cumpla determinada condici贸n c:

let respuesta;
while (respuesta != 4) {
let suma = prompt(鈥淐u谩nto es 2 + 2鈥);
respuesta = suma;
console.log(鈥淩espuesta incorrecta鈥);
}

console.log(鈥淩espuesta correcta鈥);

Este es mi aporte al 煤ltimo ejercicio

let frase = parseInt(prompt("Cuanto es 2 + 2? "));
while (frase !== 4) {
  console.log("Respuesta Incorrecta");
  frase = prompt("Cuanto es 2 + 2? ");
}
console.log("Felicitaciones acertaste");

Ciclos
1.- Responde:

  • 驴Qu茅 es un ciclo?
    Es un bloque de c贸digo que se ejecuta una y otra vez, mientras una condicion se cumpla, cu谩ndo esta deja de cumplirce o haya una especificaci贸n para parar, el ciclo termina.

  • 驴Qu茅 tipos de ciclos existen en JavaScript?
    for / while / do鈥hile

  • 驴Qu茅 es un ciclo infinito y por qu茅 es un problema?
    Un ciclo infinito ocurre cuando el mismo no tiene una condici贸n limitante. Sobrecarga la p谩gina o aplicaci贸n con operaciones sin fin, afectando su rendimiento.

  • 驴Puedo mezclar ciclos y condicionales?
    Si, por ejemplo un ciclo puede repetirse mientras una condicional se cumpla, cuando la expresion ya no sea verdadera el ciclo se detiene.

2.- Replica el comportamiento de los siguientes ciclos for en ciclos while:


3.- Escribe un c贸digo JS que pregunte al usuario cu谩nto es 4 + 8. Si responden bien mostrar mensaje de felicitaciones y si no volver a repetir el prompt:
No est谩 en un ciclo, por lo que solo se ejecuta dos veces si se ingresa un valor incorecto.

// preguntar al usuario

// con condicional y ciclo

let respuesta;
respuesta = prompt(鈥淐uanto es 2 + 2 ?鈥);

while(respuesta != 4){
let pregunta = prompt(鈥淐uanto es 2 + 2 ?鈥)
respuesta = pregunta;

if (respuesta == 4){
    alert("Eres un genio, la respuesta es correcta!")

}else{
    alert("Tu respuesta es incorrecta :(")
};

};

Asi lo hice yo, adicional con un 鈥渁lert鈥 para cuando ingrese correcta o incorrecta la respuesta. 馃槂

Utilizando siempre funciones :

function ejecutar(respuesta) {
    while (respuesta != 4) {
        respuesta = prompt('Cuanto es 2 + 2');
    }
    return respuesta;
}
ejecutar();

6/27 Ciclos

Un ciclo es una forma de ejecutar un bloque de c贸digo hasta que se cumpla una condici贸n.

Puede ser una condici贸n num茅rica, de variables o de valores booleanos.

Existen tres tipos de ciclos en JavaScript:

  • while
  • for
  • do while

El while y do while don similares en funcionamiento, pero el do while ejecuta el c贸digo antes de hacer la validaci贸n.

El for obliga a definir el inicio y fin de cada ejecuci贸n de c贸digo en el ciclo. Es importante tener cuidado para evitar ciclos infinitos.

El ciclo while valida y tiene un bloque de c贸digo per no es necesario cambiar la condici贸n para detener el ciclo.

En cambio, el ciclo for nos obliga a inicializar una variable y definir una condici贸n y una variable que cambie.

Los ciclos infinitos ocurren cuando la validaci贸n nunca se cumple, lo que puede da帽ar la aplicaci贸n.

Los ciclos y los condicionales se pueden mezclar, ya que los ciclos son una especie de condicional, y nada nos impide agregar m谩s condicionales dentro del ciclo o ejecutar un condicional dentro de un ciclo.

Para convertir ciclos for a ciclo while:

  • Primero creamos las variables que se utilizaran en la validaci贸n fuera del ciclo while
  • Luego dentro del ciclo, utilziamos una condici贸n que debe ser verdadera para que el ciclo contin煤e ejecut谩ndose.
  • Finalmente, dentro del ciclo, hacemos las mismas operaciones que hicimos dentro del ciclo for.

Es importantes tener cuidado para evitar caer en ciclos infinitos y asegurarnos de que la condici贸n del ciclo se cumpla para que no se ejecute indefinidamente.

Para hacer que un prompt se ejcute hasta que los usuarios respondan correctamente, se puede usar un ciclo while que se ejecuta mientras la respuesta no sea la correcta.

La primera ve que se ejecuta el ciclo, la respuesta no ser谩 la correcta y se har谩 la pregunta dentro del ciclo.

La respuesta del usuario se guarda en una variable fuera del ciclo para validar en la siguiente ejecuci贸n.

El ciclo se detiene cuando la respuesta es la correcta y se sale del ciclo.

para ejecutar el cloque de c贸digo varias veces, la condici贸n del ciclo debe ser que la respuesta sea diferente a la correcta.

Yo lo realice de esta forma:

let resultado = prompt('Cuanto da 2 + 2');

let esCorrecto;

if(resultado == 4){
  esCorrecto = true;
  alert("Es correcto");
}else{
  esCorrecto = false;
}


while(esCorrecto == false){
  alert("Es incorrecto");
  let resultado = prompt('Cuanto da 2 + 2');
  if(resultado == 4){
    esCorrecto = true;
    alert("Es correcto");
  }
}

Tipos de ciclos

  • while: Siempre se ejecuta, este se ejejuta indeterminadamente mientras la condici贸n sea verdadera. Estre ciclo se rompe si dicha condici贸n es falsa, cabe se帽alar, que este bloque de c贸digo nunca se ejecutr谩 si la condic贸n desde un principio fue falsa.
  • for: Similiar a while, con la diferencia que este obliga a especificar todas las condicones en la cual se ejecutr谩 este bloque de c贸digo.
  • do while: Similar al While, con la diferencia que la condici贸n se valida al final, si que por lo menos siempre se ejecutr谩 el bloque de c贸digo al menos una vez.

Los loops in finitos son un error de programaci贸n, en el cual consiste en nunca la condici贸n se rompa y se ejecutr谩 infinitamente, lo cual impedir谩 que el progrma funcione como se espraba.
Se pueden mesclar condiciones con ciclos y hacer difreets tipos de anidaciones.

let i = 0;
while (i < 5){
	console.log(''El valor de i es: '' + i);
	i = i +1;
}


let i = 10;
while (i>=2){
	console.log(''El valor de i es: '' + i);
	i =  i - 1;
}
藡藡藡

El ejercicio de la suma lo hice as铆 porque ser payaso no es un hobbie. Es un estilo de vida.

var resultado = Number (prompt("Cuanto es 2 + 2"))

while (resultado != 4) {
    resultado = Number (prompt("Upa eso no es. Intentalo de nuevo."))
}

console.log("Correcto! sabes sumar")

Realmente no es tan dif铆cil el ejercicio bonus鈥

let tipodeMensaje = [];
tipodeMensaje["Free"] = "Solo puedes tomar los cursos gratis";
tipodeMensaje["Basic"] = "Puedes tomar casi todos los cursos de Platzi durante un mes";
tipodeMensaje["Expert"] = "Puedes tomar casi todos los cursos de Platzi durante un a帽o";
tipodeMensaje["ExpertPlus"] = "T煤 y alguien m谩s pueden tomar TODOS los cursos de Platzi durante un a帽o";

let tipoDeSuscripcion = "ExpertPlus";

if (tipoDeSuscripcion == "Free" || tipoDeSuscripcion == "Basic" || tipoDeSuscripcion == "Expert" || tipoDeSuscripcion == "ExpertPlus") {
    console.log(tipodeMensaje[tipoDeSuscripcion]);
}

Ciclos

1锔忊儯 Responde las siguientes preguntas en la secci贸n de comentarios:

  • 驴Qu茅 es un ciclo?

    Un bloque de c贸digo que se repite, mientras se cumple una condici贸n.

  • 驴Qu茅 tipos de ciclos existen en JavaScript?

    Ciclos while, do while, for, for... of, for... in y la funci贸n global forEach().

  • 驴Qu茅 es un ciclo infinito y por qu茅 es un problema?

    Es un ciclo que no cumple ninguna condici贸n para dejar de repetirse y este comportamiento detiene y paraliza no solo el programa, sino que puede detener el funcionamiento de una computadora.

  • 驴Puedo mezclar ciclos y condicionales?

    S铆, tanto ciclos como condicionales pueden anidarse.

2锔忊儯 Replica el comportamiento de los siguientes ciclos聽for聽utilizando ciclos聽while:

for (let i = 0; i < 5; i++) {
    console.log("El valor de i es: " + i);
}

let i = 0;
while (i < 5) {
	console.log("El valor de i es: " + i);
	i++;
}

for (let i = 10; i >= 2; i--) {
    console.log("El valor de i es: " + i);
}

let i = 10;
while (i >= 2) {
	console.log("El valor de i es: " + i);
	i--;
}

3锔忊儯 Escribe un c贸digo en JavaScript que le pregunte a los usuarios cu谩nto es聽2 + 2. Si responden bien, mostramos un mensaje de felicitaciones, pero si responden mal, volvemos a empezar.

Pista: puedes usar la funci贸n聽prompt聽de JavaScript.

var question = prompt("2 + 2 is equal to?");

if (question != 4) {
	while (question != 4) {
		question = prompt("2 + 2 is equal to?");
		if (question == 4) {
			console.log("Congratulations! It's correct :)");
			break;
		}
		continue;
	}
} else {
	console.log("Congratulations! It's correct :)");
}

Queria aportar que yo encontre una forma bastante distinta a la pregunta de cuanto es 2+2, no se que opinan o que fallas le ven.

let resultado = 0

resultado = prompt('Cuanto es 2+2?');
  if (resultado == 4) {
     alert("Respuesta Correcta")
 } else {
    location.reload()
}

(location.reload() recarga la pagina asi que vuelve al prompt inicial)

<code> 
let resultado = prompt('驴cual es el resultado de 2 + 2?');
    function suma(){
    if(resultado == 4){ return "felicitaciones sabes sumar"}
    else { return "la suma no es correcta"}
	 }

    alert(suma());
// lo realice de tal manera  y me funciono correctamente Gracias!!

jajaja, no recordaba que ese ejercicio era de los ciclos y lo hice con una funci贸n y retornando la misma funci贸n en caso de que sea incorrecto.

function pregunta() {
    let repuesta = prompt('cuanto es 2 + 2?')
    if(repuesta == 4){
        alert('felicidades!!!!!')
    }else{
        alert('siga intentando')
        pregunta()
    }
}

pregunta()

Yo tuve una manera diferente de resolver el ejercicio de preguntar cuanto es 2 + 2.

while(prompt("How much is 2 + 2") != "4"){
    alert("Wrong answer, try again")
};
alert("Congratulations, well done!");

En mi test creo que no hab铆a le铆do bien la indicaci贸n del ejercicio de 2+2 鈥 Pero lo completo ac谩鈥

<script>
   function Suma() {
            let respuesta;
            let suuma = Number(prompt("2 + 2"));

            while (respuesta != 4) {
                respuesta = suuma;
                if (respuesta === 4) {
                    console.log("隆Felicidades!. As铆 es 2+2=4 馃馃帀馃コ");
                } else {
                    suuma = Number(prompt("2 + 2"));
                    respuesta = suuma;
                }
            }
        }

        Suma();
</script>

Los bucles ofrecen una forma r谩pida y sencilla de hacer algo repetidamente.
Hay muchos diferentes tipos de bucles, pero esencialmente, todos hacen lo mismo: repiten una acci贸n varias veces. (隆Ten en cuenta que es posible que ese n煤mero sea cero!).
Los diversos mecanismos de bucle ofrecen diferentes formas de determinar los puntos de inicio y terminaci贸n del bucle. Hay varias situaciones que son f谩cilmente atendidas por un tipo de bucle que por otros.
Las declaraciones para bucles proporcionadas en JavaScript son:

** 鈥 Declaraci贸n for **
Un ciclo for se repite hasta que una condici贸n especificada se eval煤e como false. El bucle for de JavaScript es similar al bucle for de Java y C.
Una declaraci贸n for tiene el siguiente aspecto:

for ([expresi贸nInicial]; [expresi贸nCondicional]; [expresi贸nDeActualizaci贸n])
  instrucci贸n

Cuando se ejecuta un bucle for, ocurre lo siguiente:
1. Se ejecuta la expresi贸n de iniciaci贸n expresi贸nInicial, si existe. Esta expresi贸n normalmente inicia uno o m谩s contadores de bucle, pero la sintaxis permite una expresi贸n de cualquier grado de complejidad. Esta expresi贸n tambi茅n puede declarar variables.
2. Se eval煤a la expresi贸n expresi贸nCondicional. Si el valor de expresi贸nCondicional es verdadero, se ejecutan las instrucciones del bucle. Si el valor de condici贸n es falso, el bucle for termina. (Si la expresi贸n condici贸n se omite por completo, se supone que la condici贸n es verdadera).
3. Se ejecuta la instrucci贸n. Para ejecutar varias instrucciones, usa una declaraci贸n de bloque ({ 鈥 }) para agrupar esas declaraciones.
4. Si est谩 presente, se ejecuta la expresi贸n de actualizaci贸n expresi贸nDeActualizaci贸n.
5. El control regresa al paso 2.

** 鈥 Declaraci贸n do鈥hile **
La instrucci贸n do鈥hile se repite hasta que una condici贸n especificada se eval煤e como falsa.
Una declaraci贸n do鈥hile tiene el siguiente aspecto:

do{
  expresi贸n
}while (condici贸n);

exposici贸n siempre se ejecuta una vez antes de que se verifique la condici贸n. (Para ejecutar varias instrucciones, usa una declaraci贸n de bloque ({ 鈥 }) para agrupar esas declaraciones).
Si condici贸n es true, la declaraci贸n se ejecuta de nuevo. Al final de cada ejecuci贸n, se comprueba la condici贸n. Cuando la condici贸n es false, la ejecuci贸n se detiene y el control pasa a la declaraci贸n que sigue a do鈥hile.

** 鈥 Declaraci贸n while **
Una declaraci贸n while ejecuta sus instrucciones siempre que una condici贸n especificada se eval煤e como true. Una instrucci贸n while tiene el siguiente aspecto:

while (condici贸n)
  expresi贸n

Si la condici贸n se vuelve false, la instrucci贸n dentro del bucle se deja de ejecutar y el control pasa a la instrucci贸n que sigue al bucle.
La prueba de condici贸n ocurre antes de que se ejecute la expresi贸n en el bucle. Si la condici贸n devuelve true, se ejecuta la expresi贸n y la condici贸n se prueba de nuevo. Si la condici贸n devuelve false, la ejecuci贸n se detiene y el control se pasa a la instrucci贸n que sigue a while.
Para ejecutar varias instrucciones, usa una declaraci贸n de bloque ({ 鈥 }) para agrupar esas declaraciones.

******Evita los bucles infinitos. Aseg煤rate de que la condici贸n en un bucle eventualmente se convierta en false; de lo contrario, el bucle nunca terminar谩. ******

** 鈥 Declaraci贸n break **
Usa la instrucci贸n break para terminar un bucle, switch o junto con una declaraci贸n etiquetada.
Cuando usas break , inmediatamente termina el while, do-while, for o switch y transfiere el control a la siguiente declaraci贸n.

** 鈥 Declaraci贸n continue **
La instrucci贸n continue se puede usar para reiniciar un while, do-while, for, o declaraci贸n label.
Cuando utilizas continue, finaliza la iteraci贸n actual del while, do-while o for y contin煤a la ejecuci贸n del bucle con la siguiente iteraci贸n. A diferencia de la instrucci贸n break, continue no termina la ejecuci贸n del bucle por completo. En un bucle while, vuelve a la condici贸n. En un bucle for, salta a la expresi贸n-incremento.

** 鈥 Declaraci贸n for鈥n **
La instrucci贸n for鈥n itera una variable especificada sobre todas las propiedades enumerables de un objeto. Para cada propiedad distinta, JavaScript ejecuta las instrucciones especificadas. Una declaraci贸n for鈥n tiene el siguiente aspecto:

for (variable in objeto)
  instrucci贸n

** 鈥 Declaraci贸n for鈥f **
La declaraci贸n for鈥f crea un bucle que se repite sobre objetos iterables (incluidos Array, Map, Set, objetos arguments y as铆 sucesivamente), invocando un bucle de iteraci贸n personalizado con declaraciones que se ejecutar谩n para el valor de cada distinta propiedad.

for (variable of objeto)
  expresi贸n

El siguiente ejemplo muestra la diferencia entre un bucle for鈥f y un bucle for鈥n. Mientras que for鈥n itera sobre los nombres de propiedad, for鈥f itera sobre los valores de propiedad:

const arr = [3, 5, 7];
arr.foo = 'hola';

for (let i in arr) {
   console.log(i); // logs "0", "1", "2", "foo"
}

for (let i of arr) {
   console.log(i); // logs 3, 5, 7
}
// Funcionamiento del ciclo For (inicio; condici贸n; incremento o decremento)
// Con incremento
for (let i = 0; i < 5; i++) {
  console.log(i);
}
// Con decremento
for (let k = 5; k < 0; k--) {
  console.log(k);
}

//Funcionamiento del ciclo while realiza lo que este dentro MIENTRAS que la condici贸n sea verdadera (true)
let i = 0
while (i < 5) {
  console.log(i);
  i++;
}

//Funcionamiento del ciclo do while realiza su primera tarea antes de validar la condici贸n, pero para poder seguir preguntando su condici贸n debe ser verdadera (true)
let i = 0
do {
  console.log(i);
  i++;
} while (i < 5);

Yo lo hice distinto

while (true){
    let pregunta = prompt("cuanto es 2 + 2");
    if (parseInt(pregunta) == 4){
        console.log("felicitaciones respuesta Correcto");
        break;
    }else{
        console.log("respuesta incorrecta");
    }
}

Lo complejo fue sin dudas establecer un 鈥渆lse鈥 en el 鈥渨hile鈥, hasta que vi unos de los comentarios y era tan sencillo como poner un 鈥渢rue or false鈥 como par谩metro del ciclo while para detener dicho bucle.

let encenderBucle = true;
let respuesta;
while(encenderBucle) {
    respuesta = prompt("驴Cuanto es 2 + 2?");
    if(respuesta == 5) {
        alert("Respuesta correcta, vienvenido a la policia del pensamiento.");
        encenderBucle = false;
    } else {
        alert("Respuesta incorrecta, visita el ministerio de la verdad, Gran Hemano te Observa.");
    }

}

Yo hice el ejercicio de preguntarle al usuario el resultado de 2 + 2 hasta que responda con la respuesta correcta con un ciclo do while

B谩sicamente es lo mismo, solo que el c贸digo se ejecuta por lo menos una vez, que es cuando necesitamos preguntarle al usuario al principio

let response

do {
  response = Number(prompt('Cuanto es 2 + 2'))
} while(response !== 4)
let respuesta;
while (respuesta != "4") {
    respuesta = prompt("Cuanto es 2+2? ");
}

Yo lo hice mas simple

馃幆Aqui mi solucion a la suma con funciones

function pregunta() {
  let rpt = prompt("驴Cuanto es 2 + 2?");
  if (rpt == 4 ) {
    alert("Felicitaciones respuesta correcta!")
  } else {
    alert("Respuesta incorrecta, volvamos a empezar")
    pregunta()
  }
}
pregunta()

馃幆Aqui mi solucion a la suma con while e if

let respuesta
while(respuesta!="4"){

    let pregunta = prompt("驴Cu谩nto es 2 + 2?");
      respuesta=pregunta;
    if(respuesta!="4"){
           alert("Respuesta incorrecta, volvamos a empezar")
    }
      
};
alert("Felicitaciones respuesta correcta!")

A diferencia de un ciclo For, la ejecuci贸n del ciclo While no depende de la cantidad de iteraciones; por lo tanto, un ciclo While se ejecuta indefinidamente si la condici贸n nunca ocurr

Te falt贸 poner el aviso de felicitacion

Lo hice un poco diferente, y agregu茅 el ParseInt para convertir el string en un entero, as铆 me aseguro de que es n煤mero.

Yo lo hice usando dos ciclos while

let pregunta = function(){
			let respuesta =	parseInt(prompt('Cu谩l es el resulado de 2 + 2'));

while(respuesta === 4){
	alert('Felicidades, lo has hecho');
	return;
}
while(respuesta !== 4){
	alert('Rep铆telo');
	console.log(pregunta());
  return;
}
};


Sumar 2 + 2 y te regrese un felicidades.

let respuesta;

while (respuesta !=4){
    let pregunta = prompt("驴Cu谩nto es 2 + 2?");
    if (pregunta == 4){
        console.log("Felicidades");
    }
        respuesta = pregunta;   
}

let respuesta;

do {
    respuesta = prompt("Cu谩nto es 2+2 ?");
} while(respuesta != 4)

alert("Felicitaciones sabes sumar");

馃 Dato curioso: actualmente, los navegadores Google Chrome, Microsoft Edge, Firefox y Safari tienen detecci贸n autom谩tica de ciclos infinitos y los detienen para evitar un Stack Overflow. Eso est谩 en el Curso de JavaScript Engine (V8) y el Navegador

Yo lo hice asi:

let resultado
function Calculo (resultado) {
    while (resultado != 4) {
        resultado= prompt("Lo siento, int茅ntalo de nuevo. Cuanto es 2+2?")};   
    if (resultado ==4) {
            console.log("Felicitaciones! Acertaste")
        } }

Calculo(resultado= prompt("Cuanto es 2+2?"))

Un ciclo es cuando en la ejecuci贸n de un c贸digo se re-iteran unas lineas especificas. Entonces鈥 驴C贸mo se re-iteran esas lineas? 驴Cu谩ndo se detiene? : 驴Cu谩ndo para el programa?

con la sentencia while, do while y for podemos hacer que unas lineas de c贸digo se re - iteren o se re - ejecuten. Todas las lineas que esten dentro de estas sentencias se vuelven a ejecutar. Todo lo que este dentro de los { }

Los ciclos tienen una condicion para detenerse. Una comparaci贸n por ejemplo con ( >, <, >=, <=, == ). Si la comparaci贸n da como resultado un True (un verdadero) se repite el ciclo. Cuando la condici贸n de un False (un Falso), pues ahi termina el ciclo.

PD: nunca hacer un while(true) por lo menos no para la web

for(i=1; i<=10; i++){
    if(i== 2 || i==4 || i==6 || i==8 || i==10){
        console.log(`${i} es un n煤mero par`);
    } else{
        console.log(`${i} es un n煤mero impar`);
    }
}
let answer;

while(answer!= "12"){
    let question = prompt("What's the result of 3x4?");
    answer = question;
}

cuando me pregunten que es un ciclo infinito y las consecuencias de este , dir茅: es cuando un ciclo hace que se totie el navegador

Mejor explicaci贸n no puede haber.

Hola compa帽eros, al profe Juan le falt贸 el ciclo de 鈥渇or of鈥 amigos, como vimos en el curso b谩sico de javascript con el profe Diego este ciclo funciona bastante similar al ciclo for, pero no tenemos que generar la variable " i " ni igualarla a nada, de esta forma se utilizar铆a el ciclo for of:

let estudiantes = ["Mario", "Mar铆a", "Jos茅", "Alfonso","Natalia","Armando"];

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

for (let estudiante of estudiantes) { 
    saludarEstudiantes (estudiante);
};

Tambi茅n me gustar铆a agregar que 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.

un saludo 鉂わ笍

Salduos! Aqu铆 mi respuesta al reto de 鈥2 + 2鈥 usando el do 鈥 while:

let number;
    do {
        number = prompt("Cuanto es 2 + 2?");
        if (number ==  4) {
            console.log("Felicitaciones");
        } else {
            console.log("volvamos a intentarlo")
        }
    } while (number != 4)

En mi caso le agregue un poco mas de interaccion con 鈥渁lert鈥 en caso de ser correcta la respuesta como si no lo es. Pruebalo.

let respuesta;
while(respuesta != 4){
    let pregunta = prompt("驴Cuanto es 2 + 2?");
    if (pregunta == 4){
        alert("Felicidades! Tu respuesta es correcta");
    }else {
        alert("Incorrecto! vuelve a intentar");
    }
    respuesta = pregunta;
}

Yo lo resolv铆 de la siguiente manera:

let respuesta= prompt ("驴Cu谩nto es 2 + 2?");
while (respuesta!='4'){
  respuesta= prompt ("驴Cu谩nto es 2 + 2?");
}
if (respuesta=='4'){
  alert("隆Felicidades, eres un gran matem谩tico!")
}

Algo diferente xd pero funciona鈥

<code> 
let respuesta = 4;
let inputUser;
let isIncorrect = true;
window.alert("Bienvenido a juego aritmetico");

inputUser = prompt("Cuanto es 2+2?");

  do{
  	if(respuesta==inputUser){
  			window.alert("Es correcto, felicitaciones!");
  			isIncorrect=false;
  	}else{
  		window.alert("Incorrecto, intentelo nuevamente.");
   		inputUser=prompt("Cuanto es 2+2?");
  	}
 }while(isIncorrect);

Este es la forma en la que lo hice yo.

function juego(){
	let resultado;
do{
	resultado = parseInt(prompt('驴Cu谩l es el resultado de "2 + 2". R: '));
} while(resultado !== 4){
    if(resultado === 4);
    return console.log("Respuesta correcta");
    }
}

juego();

Como el ejercicio implicaba un bucle que si respond铆a bien felicitara y si no que vuelva a intentar lo hice de esta manera.

let pregunta
while(pregunta!="4"){
  repuesta=prompt("驴Cuanto es 2+2?");
  if(repuesta=="4"){
    alert("felicitaciones acertaste");
  }else
  alert("Vuelvalo a intentar");
  pregunta=repuesta;
}

Yo lo hice con funciones:D

function hacerPregunta() {
    let respuestaUsuario = parseInt(prompt("Cu谩nto es 2 + 2"));
    const RESPUESTA = 4;
    while (respuestaUsuario != RESPUESTA) {
        respuestaUsuario = parseInt(prompt("Cu谩nto es 2 + 2"));
    }
    console.log("Felicitaciones, es correcto!");
}

let bandera = true;
while (bandera) {
let num = Number(prompt(鈥榗uanto es 2 + 2鈥));
if (num === 4){
console.log(鈥榣o lograste鈥);
bandera = false;
}else{
bandera = true;
}
}

function preguntaUsuario(){
  let respuestaUsu;
  
  let usuPregunta = prompt('驴Cual es el resultado de la siguiente operacion: 2 + 2?');
  respuestaUsu = usuPregunta;
  
  if(respuestaUsu == 4){
    alert('Tu respuesta es la correcta');
  } else{
    alert('Error!!');
  }
}

preguntaUsuario();
let usuRes;

while(usuRes != 4){
	let usuPregunta = prompt('驴Cual es el resultado de: 2 + 2 ?');
usuRes = usuPregunta;
}

Hice mi codigo de esta forma

function preguntarnombre(){
    let suma;
    while(suma != "4"){
        let respuesta = prompt("驴Cuanto es 2 + 2?");
        suma = respuesta
    }
    if(suma = "4"){
        alert("Felicitaciones")
    }
}

preguntarnombre();
```js let respuesta = prompt("Cuanto es 2 + 2"); while (respuesta != 4){ console.log("Incorrecto intenta de nuevo"); let respuesta = prompt("Cuanto es 2 + 2"); } console.log("Correcto la respuesta es 4"); ```let respuesta = prompt("Cuanto es 2 + 2"); while (respuesta != 4){聽 聽 console.log("Incorrecto intenta de nuevo");聽 聽 let respuesta = prompt("Cuanto es 2 + 2");} console.log("Correcto la respuesta es 4");
buenas falto hacer lo del mensaje de vuelve a intentarlo y felicitaci贸n...lo intente con un if while (respuesta != '4'){let pregunta = prompt("cuanto es 2 + 2 ") 聽聽 聽 if (respuesta == pregunta) 聽{ 聽 聽 聽 聽 alert("vuelve a intentarlo ") 聽聽 聽 聽聽 聽 } else{聽 聽 聽 聽 alert("felicidades ");聽 聽 }} algo falla

let respuesta = 0;
while (respuesta != 4){
respuesta = prompt(鈥渃uanto es 2 + 2?鈥);
}

let i = prompt("驴Cu谩nto es 2 + 2?");
    while(i !== "4"){
     i = prompt("Vuelve a intentarlo, 驴Cu谩nto es 2 + 2?");
    } alert("隆Felicitaciones!");

Creo que no es necesario crear la variable de pregunta y asign谩rsela a respuesta cuando directamente podemos reinicializar nuestra misma variable. (Yo en vez de usar respuesta uso i)

Esta fue mi respuesta ```js var respuesta = parseInt(prompt("Cuanto es 2 + 2?")); while(respuesta != 4){ respuesta = prompt("Respuesta incorrecta"); }; alert('Respuesta correcta'); ```