0

我在 js 中有一个程序应该检查问题的进位数,即 55+20 = 0 进位数和总值 = 75。检查答案有问题,我似乎无法弄清楚是什么这是。但是,当我使用这种方法时,它没有给出正确的输出,并且说每个答案都是错误的。

var topNumber = new Array();//top number
topNumber[1] = "35"; 

var bottomNumber = new Array();//bottom number
bottomNumber[1] = "20";

var answer = Array();//answer
answer[1] = "55"; 

var carryover = new Array();//carry over number
carryover[1] = "0"; 

//create arrays to store user information

var userCarry = [];

var userAsn = [];

//creates user values

var userCarry1 = "";

var userAsn1 ="";

//sets the number of questions to zero
var qnumber = 0;    
//creates a function to display the page number, math problem, and an alert to save the user name.
function nextQuestions() {
    //every time the user clicks on the button the number will increase and will display question number and it will be used to display the rest of the question information.
    qnumber = qnumber + 1;  
    document.getElementById('questionNumber').value = qnumber;
        //sets up question numbers with qnumber is equal to a specific question number.
    switch (qnumber) {
        case 1: 
        // question number and question
        document.getElementById('topQuestionNumber').value = topNumber[1];
        document.getElementById('bottomQuestionNumber').value = bottomNumber[1];
        //creates values to store the user information
        userCarry1 = document.getElementById('carryOverNumber').value;
        userAsn1 = document.getElementById('answerNumber').value;
        break;  


//creates a function that will check if the user value is equal to the answer

function checkAnswer() {
    if((answer[1] == userAsn1) && (userCarry1 == carryover[1])) {
        alert("Your answer is correct!" + userCarry1 + userAsn1);
    }
     if((answer[2] == userAsn2) && (userCarry2 == carryover[2])) {
        alert("Your answer is correct! "  + userCarry2 + " "+ userAsn2);
    }
     if((answer[3] == userAsn3) && (userCarry3 == carryover[3])) {
        alert("Your answer is correct! "  + userCarry3 + " "+ userAsn3);
    }
     if((answer[4] == userAsn4) && (userCarry4 == carryover[4])) {
        alert("Your answer is correct! "  + userCarry4 + " "+ userAsn4);
    }
     if((answer[5] == userAsn5) && (userCarry5 == carryover[5])) {
        alert("Your answer is correct! "  + userCarry5 + " "+ userAsn5);
    }
     if((answer[6] == userAsn6) && (userCarry6 == carryover[6])) {
        alert("Your answer is correct! "  + userCarry6 + " "+ userAsn6);
    }
     if((answer[7] == userAsn7) && (userCarry7 == carryover[7])) {
        alert("Your answer is correct! "  + userCarry7 + " "+ userAsn7);
    }
     if((answer[8] == userAsn8) && (userCarry8 == carryover[8])) {
        alert("Your answer is correct! "  + userCarry8 + " "+ userAsn8);
    }
     if((answer[9] == userAsn9) && (userCarry9 == carryover[9])) {
        alert("Your answer is correct! "  + userCarry9 + " "+ userAsn9);
    }
     if((answer[10] == userAsn10) && (userCarry10 == carryover[10])) {
        alert("Your answer is correct! "  + userCarry10 + " "+ userAsn10);
    }
    else {
        alert("Your answer is wrong.");
    }


}
4

1 回答 1

1

我最好的猜测是你在搞乱变量类型

topNumber[1] = "35" 告诉程序这是一段字符串,而不是 int

我会尝试 topNumber[1] = 35; 和 parseInt() 用户输入可以安全比较

于 2013-03-21T02:19:01.917 回答