Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

158
Views
¿Por qué mi bucle Do-While de JavaScript no produce los resultados que quiero?

Este es el fragmento de código que me da dolor de cabeza. Soy nuevo en JavaScript y estoy aprendiendo los conceptos que su conocimiento me ayudaría mucho. Los detalles del código y la salida se dan a continuación. Si tiene una idea sobre cómo resolver este problema, responda la pregunta. ¡Gracias!

 //These are my variables var candy= 10; var cookies= 20; var x= 20; var y= 30; var g= 1; //While Loop while (1 > 10){ console.log ("x + y=50") }//this won't run at all because 1<10 will never be true, I am trying to avoid infinity loops while (g<=5) { console.log("The number is " + g ) g++; }/*if it was '<' it would be an infinity loop or we can just break the loop. output: The number is 1 The number is 2 The number is 3.... All the way up to 5 */ //Do-While Loop do { console.log("This is a do-while loop") } while(candy < 9 && cookies >= x) /*This will execute once even though both the conditions are false, it's just how do-while loops were made*/ //This where the problem comes in do{ console.log("The other number is " + g) g++; } while(g<=5) /*output: The other number is 6 I thought 6 is greater than 5? Why is it bringing such an output yet the condition is g<=5? I was expecting: The other number is 1 The other number is 2.... All the way up to 5 */
about 4 years ago · Juan Pablo Isaza
3 answers
Answer question

0

let g = 1 while (g<=5) { console.log("The number is " + g ) g++; } //Until g is 5 add one to g, this means that g is 6 here console.log(g) do{ console.log("The other number is " + g) g++; } while(g<=5) // a do while loop executes once before the condition is checked
about 4 years ago · Juan Pablo Isaza Report

0

Revisé su código y encontré un problema.

 while (g<=5) { console.log("The number is " + g ) g++; }

despues de esto la g ya es 5 asi que cuando este venga

 do{ console.log("The other number is " + g) g++; } while(g<=5)

el ciclo se ejecutará solo una vez debido a que g no está por debajo de 5. si cambia el código como este. funcionará bien

 var g=1; do{ console.log("g" + g); g++; }while(g<=5)

simplemente elimine los códigos de bucle anteriores que hacen el cambio g

about 4 years ago · Juan Pablo Isaza Report

0

En el primer ciclo, donde g está involucrada, verifica esta condición: (g<=5). Esto significa que el bucle termina cuando g es mayor que 5, ¿verdad?

 while (g<=5) { console.log("The number is " + g ) g++; }

Aquí tienes

g=1 -> g++ -> g=2

g=2 -> g++ -> g=3

g=3 -> g++ -> g=4

g=4 -> g++ -> g=5

g=5 (g sigue siendo igual a 5, por lo que se cumple su condición) -> g++ -> g=6

g = 6 (g ahora es mayor que 5, por lo que su condición no se cumple. Ya no realiza un ciclo. De todos modos, g = 6 porque lo incrementó con g ++ en la iteración anterior del ciclo)

Cuando haces el siguiente bucle, es un do-while. Esto significa que la condición se verifica después de la iteración.

 do{ console.log("The other number is " + g) g++; } while(g<=5)

Dicho esto, lo que sucede es:

Imprime "El otro número es 6" porque g es 6 desde la última iteración del bucle anterior

Incrementas g a 7

Verificas la condición: g=7 es menos o igual a 5? Nº --> PARADAS DE BUCLE

Puede intentar depurar y evaluar los valores de g en cada paso.

Además, tenga en cuenta que g se declara fuera de los bucles, por lo que su alcance es "global". Esto significa que el valor no se "restablecerá" en cada nuevo ciclo. Por eso no obtienes lo que esperas:

el otro numero es el 1

El otro número es 2... Todo el camino hasta el 5

about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!