JavaScript if "x = (a || b || c)"语句不起作用
JavaScript if "x = (a || b || c)" statement not working
我正在用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"
,因此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")
我将使用一个数组作为选项,并在下面使用case语句:
var opposite = 1
var adjacent = 1
var hypotenuse = 1
var sct = "SohCahToa"
var options = ["Sine", "Cosine", "Tangent"];
while (options.indexOf(sct) < 0) {
sct = prompt("Sine (unknown adjacent) / Cosine (unkown opposite side) / Tangent (unknown hypotenuse)");
sct = options[options.indexOf(sct)];
if (options.indexOf(sct) < 0) {
alert("Spelling error, please try again");
}
}
switch (sct) {
case "Sine":
hypotenuse = prompt("What is the hypotenuse")
opposite = prompt("What is the opposite side")
break;
case "Cosine":
hypotenuse = prompt("What is the hypotenuse")
adjacent = prompt("What is the adjacent side")
break;
default:
opposite = prompt("What is the opposite side")
adjacent = prompt("What is the adjacent side")
}
相关文章:
- 可以't让我的if语句处理js中的html表单输入
- 如何在ReactJS JSX中执行嵌套的if-else语句
- 铬:“;未捕获的语法错误:意外的标记:"
- 可以设置“;文件名"发生错误时显示的内联脚本标记的
- JS表单提交"无法使用Chrome数据保护程序加载此页面.尝试重新加载页面.调试信息:POST CISmtuK
- 自动修复”;语句前缺少分号“;
- 检测电话窃听,即:<a href="电话:xxx">在UIWebview上
- 使用“+="操作人员
- 如何在 API 调用后和 if 语句中启用提交按钮
- 是“;x==a||b”;以及“;x==a||x==b”;JavaScript中的等效语句
- //而不是在src=“”上使用http://"属性
- JSP<a href="">无法保存常规语句
- 为什么我的JS"如果“;语句的求值结果总是为false
- Javascript/HTML”;错误”:"请使用POST请求“;将下拉选择与case/switch语句一起使
- "返回函数外的语句“-JavaScript错误
- 如何使用“>"AngularJS ng-if语句中的比较器
- 什么是“||"在var语句中是mean
- 闭包编译器:避免"缺少返回语句”;保证退货时发出警告
- "哎呀!错误是无法准备语句(1接近“当”语法错误)(代码5);
- 如何创建语句if包含"&"