Javascript 如何使用循环中的“i”?循环已停止后

Javascript 如何使用循环中的“i”?循环已停止后,javascript,Javascript,我想做一个抛射计算器,所以它真的需要改变计算方法&再次计算,直到完成为止 <script> function useif() { var Height = Number(document.getElementById("Height").value); var Velocity = Number(document.getElementById("Velocity").value); var Range = Number(document.getElementB

我想做一个抛射计算器,所以它真的需要改变计算方法&再次计算,直到完成为止

<script>
function useif()
{
    var Height = Number(document.getElementById("Height").value);
    var Velocity = Number(document.getElementById("Velocity").value);
    var Range = Number(document.getElementById("Range").value);
    var First = ( ( ((Math.SQRT2 * Velocity) + (Math.sqrt(19.6) * Velocity * Height)) * Math.cos(0.785398163) ) / 9.8);

    document.getElementById("First").innerHTML = First;

    if (First < Range) 
        document.getElementById("show").innerHTML = "Need more velocity to success on this range";
    else
    {
        for (var i = -1.570796327; i < MaxValue; i+0.000000001;)
        {
            ( (( (Velocity * Math.sin(i)) + Math.sqrt(Velocity * Math.sin(i) * Velocity * Math.sin(i) - 19.6 * Height) )) / 9.8) * Velocity * Math.cos(i));
            if (result >= Range) break;
            document.getElementById("i").innerHTML = i;
            var degree = i * 57.295779513;
            document.getElementById("show").innerHTML = degree + "degree";
        }
    }

}
这就是所有的功能

<p>Height<br /><input id="Height" type="text" /><br></P>

<p>Range<br /><input id="Range" type="text" /><br></P>

<p>Velocity<br /><input id="Velocity" type="text" /><br></P>

<input type="button" value="Calculate!" onclick="useif()" />
<span id="show"></p>
我试图证明我的学位,但我不知道为什么它不起作用

似乎问题是从循环部分开始的,我对它还很陌生,需要很多解释

这是我的JSFIDLE刚刚注册的

你有一些无用的任务到处进行,使你的程序混乱,并且缺少一些变量。在fiddle上使用JSHint按钮几次后,我得出了这个工作结论。希望这能帮你摆脱困境

试试这个:

HTML:

JS:


为什么不改变你的第一个问题!?您的html中没有Id为i的元素!最好创建一个JSFIDLE,让我们与您一起调试。还有,你的目标是什么?是在内部HTML中显示度值吗?是在for循环中定义了MaxValue吗?这一行要做什么?速度*Math.sini+Math.sqrtVelocity*Math.sini*速度*Math.sini-19.6*高度/9.8*速度*Math.cosi;其他事情;在for循环中,应该执行i+=0.000000001,而不是执行i+0.000000001;
    <p>Height
    <br />
    <input id="Height" type="text" />
    <br>
    </P>
    <p>Range
        <br />
        <input id="Range" type="text" />
        <br>
    </P>
    <p>Velocity
        <br />
        <input id="Velocity" type="text" />
        <br>
    </P>
    <input type="button" value="Calculate!" onclick="useif()" /> <span id="show">Output here</span>

    </p>
    window.useif = function () {
    var i;
    var MaxValue = 3;
    var Height = Number(document.getElementById("Height").value);
    var Velocity = Number(document.getElementById("Velocity").value);
    var Range = Number(document.getElementById("Range").value);
    var First = ((((Math.SQRT2 * Velocity) + (Math.sqrt(19.6) * Velocity * Height)) * Math.cos(0.785398163)) / 9.8);
    if (First < Range) document.getElementById("show").innerHTML = "Need more velocity to success on this range";
    else {
        for (i = -1.570796327; i < MaxValue; i += 0.0001) {
            result = ((((Velocity * Math.sin(i)) + Math.sqrt(Velocity * Math.sin(i) * Velocity * Math.sin(i) - 19.6 * Height))) / 9.8) * Velocity * Math.cos(i);
            if (result >= Range) break;

            var degree = i * 57.295779513;
            document.getElementById("show").innerHTML = degree + "degree";
        }
    }

};