Javascript If Statement不会运行

时间:2014-01-05 23:33:34

标签: javascript html if-statement

if语句不会运行。我想知道是否有人能够发现问题,因为我不能。

var a=parseFloat(document.form2.mark1.value);
var b=parseFloat(document.form2.mark2.value);
var c=parseFloat(document.form2.mark3.value);

var total2=(a+b);
if (total2 < 70) 
{ 
    document.form2.realmark.value= "You Have received a Passed";
}
else if(total2 < 89)
{
    document.form2.realmark.value= "You Have received a Ultra passed";
}
else if(total2 < 100)
{
    document.form2.realmark.value= "You Have received Passed Insane";
}
else
{
    window.alert("broken");
}

我正在通过一个按钮调用它,如果我没有if语句就可以。

<input name="button4" id="button4" type="button" value="Calculate Overal Mark" onClick="getmark2()" />
<br /><br />
<b>Overall Mark:</b>
<input name="realmark" type="text" id="realmark" size="35" readonly="readonly" />

它甚至不会在底部运行window.alert("broken");

3 个答案:

答案 0 :(得分:5)

这正是你告诉它要做的事情。

total2设置为100,但所有if语句都被编程为仅在total2 小于 100时执行。

答案 1 :(得分:0)

只是要清楚你知道如何编写这样的代码:

var total2 = 100;
if (total2 < 70) 
{ 
    document.form2.realmark.value= "You Have recieved a Passed";
}
else if(total2 < 89 && total2 >= 70)
{
    document.form2.realmark.value= "You Have recieved a Ultra passed";
}
else if(total2 < 100 && total2 >= 90)
{
    document.form2.realmark.value= "You Have recieved Passed Insane";
}
else
{
    window.alert("broken");
}

关于您的问题,您设置的是total2 = 100,因此您的total2是100,并且您的if statements没有被抓住。因此else中的代码会运行,因为if conditions都没有匹配。

答案 2 :(得分:0)

此外,更好的方法来执行如此庞大的if列表是改为使用开关:

var a = parseFloat(document.form2.mark1.value);
var b = parseFloat(document.form2.mark2.value);
var c = parseFloat(document.form2.mark3.value);
var total2 = (a+b);

switch(true){
    case (total2 < 70):
        document.form2.realmark.value= "You Have recieved a Passed";
        break;
    case (total2 < 89):
        document.form2.realmark.value= "You Have recieved a Ultra passed";
        break;
    case (total2 < 100):
        document.form2.realmark.value= "You Have recieved Passed Insane";
        break;
    default:
        window.alert("broken");
        break;
}

请注意,这主要是程序员偏好。另请注意,并非所有语言都允许在case条件下使用表达式。