好吧,我已经为评估制作了一些JavaScript。一切正常,直到我使用switch
语句调用新函数:
function differentComments(answer) {
当函数differentComments在那里时,程序似乎不再加载跟随函数:
function genQuestion() {
我的所有JavaScript代码都在下面(HTML为available on Pastebin):
var x, y; //the global variables
function aNumber() {
return Math.floor(1 + Math.random() * 12);
}
function genQuestion() {
x = aNumber();
y = aNumber();
dout = document.getElementById('Question');
dout.value = x + " times " + y;
}
function buttonPressed() {
var input = document.getElementById('Typed').value;
var answer = x * y;
if (input == answer) {
differentComments("Right");
genQuestion();
} else {
differentComments("Wrong");
}
document.getElementById('Typed').value="";
}
function differentComments(answer) {
var random_number = Math.floor(1 + Math.random() * 4);
if (answer == "Right") {
switch (random_number) {
case 1:
window.alert("Very Good!");
break;
case 2:
window.alert("Excellent!");
break;
case 3:
window.alert("Correct - Nice work!");
break;
case 4:
window.alert("Correct - keep up the good work!");
break;
default:
break;
}
} else (answer == "Wrong") {
switch (random_number) {
case 1:
window.alert("No. Please try again.");
break;
case 2:
window.alert("Wrong. Try once more.");
break;
case 3:
window.alert("Incorrect – Don’t give up.");
break;
case 4:
window.alert("No – keep trying.");
break;
default:
break;
}
}
}
答案 0 :(得分:1)
你的其他条款不正确。
if (answer == "Right") {
switch(random_number) {
...
}
else (answer == "Wrong") {
}
不会解析,因为第二个测试缺少if。
if (answer == "Right") {
switch(random_number) {
...
}
else **if** (answer == "Wrong") {
}
基本上你正在将if()视为switch(),并且这在语法上是不正确的。
当遇到这种情况时,你应该做的第一件事是使用jshint或jslint来检查你的代码的语法正确性。
答案 1 :(得分:1)
在您的代码块中:
if (answer == "Right") {
switch(random_number) {
...
}
else (answer == "Wrong") {
switch(random_number) {
...
}
}
表示您放置if and else
语句,只有当所有条件都返回false
时才执行else条件。所以没有必要放置条件语句(就像你的情况一样 - else (answer == "Wrong") {)
)。
你可以简单地写一下:
if (answer == "Right") {
switch(random_number) {
...
}
else {
switch(random_number) {
...
}
}
这意味着如果你的答案不等于Right
,它总是转到其他陈述。
OR
如果您想检查更多条件,请使用else if(){}
语句。
if (answer == "Right") {
switch(random_number) {
...
}
else if (answer == "Wrong") {
switch(random_number) {
...
}
}