2014-11-04 6 views
-3

У меня есть пять вопросов к пользователю, которым требуются ответы пользователей. Правильные ответы подсчитываются, а затем пользователь сортируется в конце.Почему порядок ответов не работает по желанию?

Хотелось бы, чтобы каждый вопрос задавался сразу после каждого соответствующего вопроса, а не после того, как все были заданы. Как и сейчас, он запрашивает 2 из 5 вопросов, а затем предоставляет ответ пользователю, но только после того, как все вопросы заданы. Приказ: (спросите, спросите, ответьте, ответьте), но мне нужно, чтобы это было (спросите, ответьте, спросите, ответьте), но я не могу понять, почему это не так.

// Counters 
var numberOfQuestions = 5; 
var correctAnswers = 0; 

// The five questions 
var raining = prompt("Is it raining today?"); 
var married = prompt("Am I married?"); 
    /* Remaining questions 
    var day = prompt("What day is it?"); 
    var threes = prompt("What does 3 + 3 + 3 equal?"); 
    var number = prompt("What number am I thinking of?"); 
    */ 

// First question - Is it raining 
if (raining.toUpperCase() === "NO") { 
    correctAnswers += 1; 
    alert("Correct. \nYou have " + correctAnswers + " correct answers out of " + numberOfQuestions); 
} else { 
    alert("Don't you wish it was. \nYou have " + correctAnswers + " correct answers out of " + numberOfQuestions); 
    } 

// Second question - Am I married 
if (married.toUpperCase() === "YES") { 
    correctAnswers += 1; 
    alert("Correct! I am married. \nYou now have " + correctAnswers + " correct answers out of " + numberOfQuestions); 
} else { 
    alert("Incorrect, I am married. \n You still have " + correctAnswers + " correct answers out of " + numberOfQuestions); 
} 

Любая помощь была бы очень признательна.

+1

Порядок как вы можете видеть в коде. Вы этого не ожидали? 'prompt' спрашивает,' alert' является ответом. – Rudie

+0

Просто поставьте вопрос (подсказка) перед частью, проверяющей его ответ. Теперь все вопросы задаются первым и проверяются, когда на все вопросы отвечают. – Barry

+0

@Padawan Downvote, как, например, для мыши с наддувом, «этот вопрос не показывает никаких исследований». Стандартная отладка (инструмент, который каждый, особенно новичок, должен иметь в своем программном репертуаре) мог бы выявить эту проблему для вас. – admdrew

ответ

1

Просто поместите

var married = prompt("Am I married?"); 

перед вторым, если.

Присвоение переменной prompt() показывает подсказку немедленно, а не когда вы начинаете выполнять некоторые операции с этой переменной.

+0

Хороший лорд! Я вижу это сейчас. Я не знаю, почему я этого раньше не видел. На самом деле довольно просто. благодаря – Padawan

1

Проще говоря:

var married = prompt("Am I married?"); 

после:

// Second question - Am I married 
0

Простой способ будет чередовать if-проверки между подсказками. Тем не менее, вы можете использовать функции, чтобы помочь держать вещи прямо:

function ask(question, correct_answer, correct_text, incorrect_text) { 
 

 
    var answer = prompt(question); 
 
    
 
    if (answer.toUpperCase() === correct_answer.toUpperCase()) { 
 
     alert(correct_text + "\nYou have " + (++correct_count) + " out of " + question_count); 
 
    } else { 
 
     alert(incorrect_text + "\nYou have " + (correct_count) + " out of " + question_count); 
 
    } 
 

 
} 
 

 
function run() { 
 
    correct_count = 0; 
 
    question_count = 2; 
 

 
    ask("Is it raining?", "YES", "Correct, it is!", "Sorry, but it actually is."); 
 
    ask("Am I married?", "YES", "Correct, I am!", "Sorry, but I've got the ring and everything."); 
 

 
    resolve(); 
 
} 
 

 
function resolve() { 
 
    alert("You got " + correct_count + " questions right!"); 
 
} 
 

 
run();

-1

Это должно работать. Он основан на вашем исходном коде. enter code here

var raining = prompt("Is it raining today?"); 

if (raining.toUpperCase() === "NO") { 
    correctAnswers += 1; 
    alert("Correct. \nYou have " + correctAnswers + " correct answers out of " + numberOfQuestions); 
} else { 
    alert("Don't you wish it was. \nYou have " + correctAnswers + " correct answers out of " + numberOfQuestions); 
    } 


var married = prompt("Am I married?"); 
    /* Remaining questions 
    var day = prompt("What day is it?"); 
    var threes = prompt("What does 3 + 3 + 3 equal?"); 
    var number = prompt("What number am I thinking of?"); 
    */ 



// Second question - Am I married 
if (married.toUpperCase() === "YES") { 
    correctAnswers += 1; 
    alert("Correct! I am married. \nYou now have " + correctAnswers + " correct answers out of " + numberOfQuestions); 
} else { 
    alert("Incorrect, I am married. \n You still have " + correctAnswers + " correct answers out of " + numberOfQuestions); 
} 
Смежные вопросы