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");
。
答案 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
条件下使用表达式。