为什么这段代码会重复?

时间:2015-11-01 00:02:27

标签: javascript function parameters arguments

这是我为课堂作业编写的代码。作业内容如下:

“构建一个启动程序的功能。请将其命名为 main()。 从main()函数中,调用一个名为 getValue()的函数。 getValue()函数将从用户获取将用于下一步的数字。 同样来自main()函数,调用一个名为 getSquareRoot()的函数。 getSquareRoot()函数将获取用户在 getValue()函数中接收的数字的平方根。 确保以易于阅读的声明向用户显示结果,包括数字的原始编号和平方根。

顺便说一句,Bolding包含在原文中。

这是我的代码并且它有效,除了以某种方式调用函数两次,结果显示两次,第二次迭代为userInput指定值为0.我似乎无法确定“循环”被解雇的位置(这里是初学者)。任何帮助将非常感谢;我知道我正在盯着它,但这完全是我的意思。

<html lang="en">

<head>
<title>Project 3 Part A</title>

    <meta charset="utf-8">      

    <script>

        function main()
        {

            var msg1="";
            var msg2="";                
            var userInput = "";

            getValue(userInput);
            getSquareRoot(userInput);

        }

        function getValue(userInput)
        {

            var userInput = document.getElementById("userNumber").value;
            return getSquareRoot(userInput);

        }

        function getSquareRoot(userInput)           
        {           

            squareRoot = Math.sqrt(userInput);  
            var msg1 = "Your original number was " + userInput + ".";   
            var msg2 = "The square root of " + userInput + " is " + squareRoot + ".";   
            document.getElementById("original").innerHTML += msg1;
            document.getElementById("results").innerHTML += msg2;

        }




    </script>

</head>

<body>

        <br>

    <input type="button" id="userInputButton" onclick="javascript:main();" value="Square root input value: "/>          

    <input type="text" id="userNumber"> 

    </div>

    <div id="original">

    </div>

    <div id="results">

    </div>                      

</body>

在这里输入代码

1 个答案:

答案 0 :(得分:0)

您需要记住,每个功能最多只能有1个用途。这里的函数'getSquaredRoot'负责计算根以及输出结果供用户查看。

正如Lucky Chingi所说,你要两次调用getSquaredRoot。

       function main()
    {
        var userInput = getValue();        
        var squaredRoot = getSquareRoot(userInput);

        var msg1 = "Your original number was " + userInput + ".";   
        var msg2 = "The square root of " + userInput + " is " + squareRoot + ".";   
        document.getElementById("original").innerHTML += msg1;
        document.getElementById("results").innerHTML += msg2;

    }

    function getValue()
    {
        return document.getElementById("userNumber").value;
    }

    function getSquareRoot(userInput)           
    {           
        return Math.sqrt(userInput);  
    }

注意它现在在逻辑上是如何分离的。