1
resposta

Não está criando novas linhas.

<meta charset="UTF-8">
<script>

    let variavel = prompt("O que você deseja repetir?");

    let linhas = parseInt(prompt("Qual o número de linhas?"));

    let colunas = parseInt(prompt("Qual o número de colunas?"));

    while(linhas > 0){


        while(colunas > 0){

            document.write(variavel);
            colunas--

        };

        document.write("<br>");

        linhas--;
    };

</script>
1 resposta

Oi, João, como vai?

Isso tá acontecendo porque no segundo while, após as execuções, o valor da variável colunas fica zerado porque você está diminuindo o valor dela até chegar em 0. Uma alternativa para solucionar isso seria adicionar no código uma variável auxiliar para guardar o valor que é inserido pelo usuário, e com essa variável, toda vez que o valor de colunas ficar zerado, a gente diz que o valor dela é igual ao valor da variável auxiliar, que guardará o valor inicial inserido pelo usuário no prompt.

O código ficaria assim:

<script>

    let variavel = prompt("O que você deseja repetir?");

    let linhas = parseInt(prompt("Qual o número de linhas?"));

    let colunas = parseInt(prompt("Qual o número de colunas?"));

    let colunasAux = colunas;

    while(linhas > 0){


        while(colunas > 0){

            document.write(variavel);
            colunas--

        };

        document.write("<br>");

        linhas--;
        colunas = colunasAux
    };

</script>

Espero ter ajudado.

Abraços e bons estudos!