Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
1
respuesta

Repeticiones Anidadas - Como seria un while dentro de while?

Justo eso, tengo duda de como seria con el ejemplo de las estrellas.

<h1>Estrellas</h1>

<script>
function saltarlinea() {
    document.write("<br>");
    document.write("<br>");
    document.write("<br>");

}

function imprimir(frase) {

    document.write(frase);
    saltarlinea();

}

var lineas = 1
var columnas = 1

while (lineas <= 3){
    document.write("*")

    lineas++;

    while (columnas <= 10){
        document.write("*")
        columnas++
    }
    saltarlinea();
}

</script>
1 respuesta

Hola Edgar. No entiendo muy bien a que te refieres exactamente... Si la intención de tu programa es la imprimir 10 estrellas por cada línea (3 en este caso) necesitas reiniciar el contador de columnas cada vez que la condición del segundo bucle se cumpla

... //resto del código

while (columnas <= 10) {
        document.write("*")
        columnas++
} 

// columnas = 10

...

De lo contrario, luego de la primera iteración del bucle líneas, solo se imprimirá una estrella por línea ya que la variable "columnas" aún tendrá como valor 10 pese a ser una nueva repetición.

Ingrese aquí la descripción de esta imagen para ayudar con la accesibilidadLa solución simple a ello es reestablecer el contador de columnas a 1 fuera del segundo segmento while:

... //resto del código

while (columnas <= 10){
        document.write("*")
        columnas++
    }
    columnas = 1 //este argumento reestablece el contador
    saltarlinea();
}

...

Una vez que el segundo bucle evalúe que la variable columnas es mayor o igual a 10 saltará al final del bucle, reiniciará el contador de columna, llamará a saltarlinea(), irá al inicio del bucle de línea y re-hará el proceso de columnas hasta que la condición del primer bucle (lineas) sea 3. Una vez terminado, así es como queda:

Ingrese aquí la descripción de esta imagen para ayudar con la accesibilidad