@atumbochka

Как правильно настроить if и while?

<body>
        <div id="test"></div>
        <div id="text"></div>
        <input type="text" id="input">
        <button id="button">OK</button> <br>
        <div id="nameText"></div>
        <script src="script.js"></script>
    </body>


let nameEntered = false;

const randomNumber = Math.floor(Math.random() * 100);

const button = document.getElementById("button");
const input = document.getElementById("input");
const text = document.getElementById("text");
const test = document.getElementById("test");
const nameText = document.getElementById("nameText");

test.textContent = randomNumber;
text.textContent = "Введите имя:";

button.onclick = function () {
    if (nameEntered === false) {
        if (input.value === " " || input.value === "") {
            text.textContent = "Вы не ввели имя!";
        } else {
            nameEntered = true;
            nameText.textContent = "Здравствуйте, "+input.value+"!";
        }
    }

    if (nameEntered === true) {
        if (Number(input.value) === randomNumber) {
            text.textContent = "Вы победили!";
            button.hidden = true;
        } else {
            if (Number(input.value) > randomNumber) {
                text.textContent = "Неправильно! Моё число меньше!";
            } else {
                text.textContent = "Неправильно! Моё число больше!";
            }
        }
    }
}


Нужно сделать так, чтобы после ввода имени не выводилось "моё число меньше"/"моё число больше". То есть ввод имени алгоритм понимает как попытку угадать число, надо как-то разграничить ввод имени и угадывание числа.

Заранее спасибо!
  • Вопрос задан
  • 102 просмотра
Пригласить эксперта
Ответы на вопрос 1
WblCHA
@WblCHA
Я бы поменьше элсов использовал для лучшей читабельности.
button.onclick = function () {
  if (nameEntered) {
    if (+input.value === randomNumber) {
      text.textContent = "Вы победили!";
      button.hidden = true;
      return;
    } 

    text.textContent = 
      +input.value > randomNumber ?
      "Неправильно! Моё число меньше!" :
    	"Неправильно! Моё число больше!";
    return;
  }

  if (!input.value.trim()) {
    text.textContent = "Вы не ввели имя!";
    return;
  } 

  nameEntered = true;
  nameText.textContent = `Здравствуйте, ${input.value}!`;
  text.textContent = "Теперь введите число!";
}
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы