Diferencia entre revisiones de «Programación en JavaScript/Control/Bucles»

Contenido eliminado Contenido añadido
Raulbcneo (discusión | contribs.)
Raulbcneo (discusión | contribs.)
Línea 121:
== While ==
 
EsteEl bucle ''while'', comoal igual que el bucle ''for'', también es condicional, aunque mucho más simple que éste, como vemos en el siguiente ejemplo:
 
{{JavaScript/Reservada|var}} x = 1;
{{JavaScript/Reservada|while}} (x < 10)
{
{
document.write("Mi número es: " + x + "&lt;br&gt;");
x++;
}
}
 
Como vemos, este bucle es idéntico al primerbucle ''for'' que estudiamos antes,en aunqueel comoapartado podemosanterior apreciar,pero mucho más simple. En realidad, la complejidad de for se ha descompuesto en partes separadas sencillas.
 
¿Para qué hay dos bucles que al fin y al cabo hacen los mismo? En el pasado, ''for'' era un bucle incondicional, es decir, que sólo podía ir de cierto punto a cierto punto, sin comprobaciones intermedias. Por eso se desarrolló el bucle ''while''. Sin embargo, lenguajes más avanzados como C crearon un ''for'' condicional más potente. Aunque realiza funciones semejantes, ''while'' tiene como ventaja que, al ser más simple, también es más rápido y eficaz en términos de rendimiento que ''for''. Además, algunas operaciones resultan simplificadas:
 
{{JavaScript/Reservada|while}} (verdad)
{
{
if (verdad) document.write("Es verdad");
verdad = !verdad;
}
}
 
Este extraño ejemplo es significativo delpor el uso de variables lógicas o booleanas. ''verdad'' es una variable lógica que sólo puede tener los valores ''true'' y ''false''. Si ''verdad'' es ''true'', el bucle se ejecutará. Al ejecutarse, también se comprobará la condicion interna y se imprimirá el mensaje "Es verdad". Lo interesante viene luegodespués. La expresión "''verdad = !verdad"'' significa "hacer que ''verdad'' sea contrario a ''verdad''". Si ''verdad'' era igual a ''true'', ahora será igual a ''false'' (el operador ''!'', como sabemos, es la negación, y por lo tanto, cambiará el valor de la variable a su contrario). Dejo al alumno el realizar una versión for del bucle.
 
''while'' tiene una versión inversa: ''do ... -while''. Este bucle tiene como diferencia respecto de ''while'' que, mientras que en ''while'' la condición se comprueba incluso antes de comenzar a ejecutar el bucle (lo que implica que si la condición ya fuese falsa antes de entrar en el bucle, éste no llegaría a ejecutarse nunca), en ''do ... -while'' la condición se comprueba a posteriori, con lo que tenemos la oportunidad de ejecutar el bucle al menos una vez. Esto también es una ventaja con respecto a ''for'', que en ese sentido se comporta igual que ''while''. Veamos un ejemplo:
 
{{JavaScript/Reservada|var}} x = 0;
{{JavaScript/Reservada|do}}
do
{
{
document.write("Mi número es el " + x + "&lt;br&gt;");
x++;
} {{JavaScript/Reservada|while}} (x < 10);
 
<noinclude>{{Navegador|libro=Programación en JavaScript
|actual=Bucles
|anterior=Control / Condicionales
|siguiente=Funciones
}}</noinclude>