Как заставить javascript возвращать сообщения с помощью if/else?
Я пытаюсь создать простую программу, в которой пользователю нужно выбрать максимальное число, а затем попытаться угадать число между 1 и этим максимальным числом. Когда они вводят свое предположение, мне нужно проверить ввод и предложить выбор обратной связи: различные сообщения, если это (1) не число, (2) число не в пределах диапазона, (3) правильное предположение, (4) слишком высокое, но в пределах диапазона, и (5) слишком низкое, но в пределах диапазона.
Что я уже пробовал:
function do_guess(prompt) { let valid_input = false; let guess = Number(document.getElementById("guess").value); let message = document.getElementById("message"); while(!valid_input) { input = window.prompt(prompt); guess = Number(input); if (guess == NaN) { message.innerHTML = "That is not a number!"; } else if (guess < 1 || guess > val) { \\val is maximum range - I'm not sure how to code this yet\\ message.innerHTML = "That number is not in the range, try again."; } else if (guess == num) { valid_input = true; message.innerHTML = "You got it!"; } else if (guess > num) { message.innerHTML = "No, try a lower number."; } else { message.innerHTML = "No, try a higher number."; } } }
Richard MacCutchan
В чем же проблема?
DerekT-P
Так что же этот код делает, чего вы не хотите, или не делает того, что вы делаете? (Кстати, используйте guess.isNaN, а не guess == NaN ).
Подсказка - одна из проблем, с которой вы столкнетесь, заключается в том, что браузер может не перерисовывать элемент "сообщение", потому что перерисовка происходит только после завершения выполнения скрипта, и в вашем коде она не завершается (выход из цикла while) до тех пор, пока пользователь не введет правильное предположение. (Ожидание запроса на ввод данных пользователем не считается выходом из выполнения скрипта). Исследуйте, как решить эту проблему, или реструктурируйте свой код так, чтобы он не был полностью в пределах одного цикла while.