Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Aparece 30 linhas com 1 asterisco apenas

Alguém poderia me ajudar a saber o que estou fazendo errado?

<meta charset="UTF-8">
<script>
    function pular() {
     document.write ("<br><br>")
    }
    function escrever (texto){
        document.write (texto) 
        pular ()
    }

for (var linha = 1; linha <= 3; linha++) {    
    for (var coluna = 1; coluna <= 10; coluna++) {
         escrever ("*")
    }
}
</script>
1 resposta
solução!

Cara Izabella,

presumo que sua intenção seja fazer o que o professor solicitou, ou seja, imprimir em tela 3 linhas com 10 asteriscos cada.

O seu código porém solicita que o navegador que execute a function pular() a cada vez que a function escreve() é invocada.

pular() executa uma vez sempre que escrever() é executada.

Ou seja, imprime um asterisco e pula linha. Não é o contador quem faz isso. É a function escrever(). Por isto imprime 30 linhas com um asterisco cada.

Então primeiro tem que tirar a invocação de pular() de dentro de escrever(). Aí escrever() só vai imprimir em tela, e mais nada.

A function pular() por sua vez deve ser invocada sempre que termina uma linha de 10 asteriscos, ou seja, ao final da execução do segundo for(), após imprimir o décimo asterisco.

Seu código deveria ficar assim então:

<meta charset="UTF-8">
<script>
    function pular() {
        document.write("<br><br>");
    }
    function escrever(texto){
        document.write(texto); 
    }

    for (var linha = 1; linha <= 3; linha++) {    
        for (var coluna = 1; coluna <= 10; coluna++) {
             escrever("*");
        }
        pular();
    }
</script>

É só isso, pro seu código funcionar.


Aproveitando, recomendo algumas dicas:

  • use sempre ponto e vírgula ao final de cada linha de comando. Seu código hoje funciona, mas dependendo das funcionalidades, a separação por ponto e vírgula pode fazer falta, e pode ser difícil achar o erro; acostume-se a esta boa prática;

  • procure indentar bem seu código. No exemplo do seu exercício, todo o conjunto de for() ficou fora de indentação; acostume-se a esta boa prática também;

  • não deixe espaço entre o nome da function e os parênteses de parâmetro:


document.write ("<br><br>")
function escrever (texto)
document.write (texto) 
pular ()

melhor assim:

document.write("<br><br>")
function escrever(texto)
document.write(texto) 
pular()