Solucionado (ver solução)
Solucionado
(ver solução)
9
respostas

concatenar os dois resultados com um pulaLinha entre eles


<meta charset="UTF-8">
<script>
    function pulaLinha() {
        document.write("<br>");
    document.write("<br>");
}
        function mostra(frase) {
        document.write(frase);
        pulaLinha();

}
        function calculaImc(peso, altura) {
            var imc = peso / (altura * altura);
            return imc;
}
    var imcFlavio = calculaImc(73, 1.71);
    var imcAmigo = calculaImc(68, 1.72)
mostra("IMC calculado é  =" + Math.round(imcFlavio) + "." + pulaLinha() + "IMC calculado é  =" + Math.round(imcAmigo) + ".") 

</script>

Está retornando no navegador : IMC calculado é =25.undefinedIMC calculado é =23.

9 respostas

Kaique,

Coloca seu código aqui.

Abs!

Kaique,

A sua função pulaLinha escreve direto na página e por ela não ter um retorno definido aparece o undefined .

Mais ou menos assim, quando chama a função mostra ele vai imprimindo tudo que esta entre aspas até chegar na função Math.round , essa função pega o valor que foi passado como parâmetro e retorna o valor arrendondado, em seguida ela acha a pulaLinha que tem dois comandos ( document.write ), os comandos são executados, mas função não tem valor de retorno definido, então a execução do pulaLinha retorna undefined que é adicionado na sua string.

Altere sua função pulaLinha para que retorne uma string com as tags ao invés de escrever diretamente na sua página.

Abraços!

Luiz Fernando

como eu posso fazer isso? Entendi onde está o problema mas como faço ela retornar a string que quero? uso um parseString?

Kaique,

Dá para fazer a alteração abaixo:

function pulaLinha() {
        document.write("<br>");
        document.write("<br>");
    return "<br><br>"

Mas, sinceramente, eu apenas alteraria o que você quer mostrar para:

mostra("IMC calculado é  = " + Math.round(imcFlavio) + "." + "<br><br>" + "IMC calculado é  = " + Math.round(imcAmigo) + ".")

A função pula linha poderia ficar simplificada dessa forma

function pulaLinha() {
        document.write("<br><br>");
}

A função correta neste caso é

function pulaLinha(){
    return "<br>";
}

A resposta da Edilene funciona, mas o undefined ainda seria exibido.

solução!

Afinal ele quer essa function pulaLinha saltando uma ou duas linhas? Essa abaixo só salta uma! Tem que inserir mais um nesse return.

function pulaLinha(){
    return "<br>";
}

Kaique,

Por favor, marca o tópico como solucionado ;)

Problema solucionado!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software