如何使用"我"从循环?后循环已经停止

时间:2014-08-08 08:02:43

标签: javascript

我试图制作一个射弹计算器,所以它真的需要改变再次计算的方式。再一次,直到它完成。

<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>

我试图展示&#34; degree&#34;但我不知道为什么它不起作用

似乎问题是来自循环部分,我真的很陌生,需要大量的解释

这是我刚刚注册的JSfiddle http://jsfiddle.net/#&togetherjs=1m70MQhEGo

1 个答案:

答案 0 :(得分:0)

你在整个地方发生了一些无用的任务,使你的程序混乱,并且缺少一些变量。在小提琴上使用了几次“JSHint”按钮后,我得出了这个工作结论。希望这可以帮助你解决问题。

试试这个:

HTML:

    <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>

JS:

    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";
        }
    }

};