Как сохранить результаты итерации в переменной - PullRequest
0 голосов
/ 18 ноября 2018

По образовательным причинам я работаю с простым алгоритмом, который случайным образом генерирует два числа, а затем запрашивает добавление сгенерированных чисел, сообщает вам, верны ли вы или нет в ответе, и отслеживает результаты из 100. Я хотел бы включить функцию, которая сообщает что-то вроде следующего: «Вы правильно выполнили 80/100». Но я думаю, что я придерживаюсь синтаксиса. Я не могу заставить мою переменную счета посчитать правильные ответы.

Вот мой код в том виде, в каком он есть ..

do{

var firstnum = Math.floor(Math.random()*10);
var secondnum = Math.floor(Math.random()*10);
var result = firstnum+secondnum;
var score=0;


var answer = prompt("what is "+firstnum + "+" + secondnum);

if(answer < result || answer > result){alert("Wrong! " + "The correct answer 
is " + result)};

if(answer == result){alert("you are correct!"), score++};


alert("Awesome, You have gotten " + score + " correct so far!!!");}
while(score<100); 

Просто перенеси меня через горб. Я надеюсь, что я действительно смогу обернуть голову вокруг большего количества понятий, если я смогу пройти через этого маленького парня.

1 Ответ

0 голосов
/ 18 ноября 2018

Вы сбрасываете score в каждом цикле на ноль. Переместите объявление и инициализацию наверх.

Некоторые подсказки:

// declare all variables at top
var firstnum,
    secondnum,
    result,
    score = 0,
    answer;

do {
    firstnum = Math.floor(Math.random() * 10);
    secondnum = Math.floor(Math.random() * 10);
    result = firstnum + secondnum;
    // covert input string to number with unary plus
    answer = +prompt("what is " + firstnum + "+" + secondnum);
    //       ^

    // just check the result and omit a second if clause,
    // because it is just the opposite check
    // take the more easy/shorter check first
    if (answer === result ) {
        alert("you are correct!");
        score++;
    } else {
        alert("Wrong! " + "The correct answer is " + result)
    }
    alert("Awesome, You have gotten " + score + " correct so far!!!");
} while (score < 2) // take a small number for scoring check
...