我正在用 javascript 编写一个简单的三角程序,我的 if 和 while 语句无法正常工作,因为它们只有在第一个条件为真时才会通过,即如果您输入正弦,它将起作用,但如果您输入余弦或正切,则不会。
<script language="JavaScript">
var opposite = 1
var adjacent = 1
var hypotenuse = 1
var sct = "SohCahToa"
while (!(sct == ("Sine" || "Cosine" || "Tangent"))) {
sct = prompt("Sine (unknown adjacent) / Cosine (unkown opposite side) / Tangent (unknown hypotenuse)")
if (!(sct == ("Sine" || "Cosine" || "Tangent"))) {
alert("Spelling error, please try again")
}
}
if (sct == ("Sine" || "Cosine"))
hypotenuse = prompt("What is the hypotenuse")
if (sct == ("Sine" || "Tangent"))
opposite = prompt("What is the opposite side")
if (sct == ("Tangent" || "Cosine"))
adjacent = prompt("What is the adjacent side")
谢谢
(将代码另存为.html以进行测试)
所有多重比较如下所示:
if (sct == ("Sine" || "Cosine" || "Tangent"))
需要改成这样:
if (sct == "Sine" || sct == "Cosine" || sct == "Tangent")
解释一下,当你这样做时("Sine" || "Cosine" || "Tangent")
,其计算结果为"Sine"
so if (sct == ("Sine" || "Cosine" || "Tangent"))
是相同的if (sct == "Sine")
这显然不是你想要的。
这是应用了所有更正的代码:
var opposite = 1
var adjacent = 1
var hypotenuse = 1
var sct = "SohCahToa"
while (!(sct == "Sine" || sct == "Cosine" || sct == "Tangent")) {
sct = prompt("Sine (unknown adjacent) / Cosine (unkown opposite side) / Tangent (unknown hypotenuse)")
(!(sct == "Sine" || sct == "Cosine" || sct == "Tangent")) {
alert("Spelling error, please try again")
}
}
if (sct == "Sine" || sct == "Cosine")
hypotenuse = prompt("What is the hypotenuse")
if (sct == "Sine" || sct == "Tangent")
opposite = prompt("What is the opposite side")
if (sct == "Tangent" || sct == "Cosine")
adjacent = prompt("What is the adjacent side")
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)