alert 을 뜨게 하고 싶은데 왜 이 조건에서는 쓸 수 가 없을까요?

조회수 492회
<!DOCTYPE html>
<html>
  <head>
    <title>DoubleP</title>
    <meta charset="UTF-8" />
  </head>

  <body>
    <h1>Random Number Game</h1>
    <form id="playbutton">
      <h2>
        Generate a number between 0 and
        <input id="max" type="number" min="1" required />
      </h2>
      <h3>
        Guess the number :
        <input id="guessTheNumber" type="number" min="0" required />
        <input type="submit" value="Play!" />
      </h3>
    </form>
    <div id="numbers">
      <span id="youwin"></span>
      <span id="youlose"></span>
    </div>

    <script src="src/index.js"></script>
  </body>
</html>
const playbutton = document.querySelector("#playbutton");
const youwin = document.querySelector("#youwin");
const youlose = document.querySelector("#youlose");

function handlePlayButton(event) {
  event.preventDefault();

  const usernumber = document.querySelector("#guessTheNumber").value;
  const usernumberInt = Number(usernumber);
  const range = document.querySelector("#max");
  const range2 = range.value;
  const rangeInt = Number(range2);
  const randomNumber = Math.ceil(Math.random() * range2);

  if (usernumberInt === randomNumber) {
    youwin.innerHTML = `You chose : ${usernumberInt}. the machine chose : ${randomNumber}.<br> You win!`;
    youlose.innerHTML = "";
  } else if (usernumberInt !== randomNumber) {
    youlose.innerHTML = `You chose : ${usernumberInt}. the machine chose : ${randomNumber}.<br> You lost!`;
    youwin.innerHTML = "";
  } else if (usernumberInt > rangeInt) {
    alert("Wrong number!");
  }
}

playbutton.addEventListener("submit", handlePlayButton);

여기에서 맨 마지막 줄 쯤에서, 들어가는 숫자가 제가 설정 한 Range를 벗어나서 alert 문을 뜨게 하고 싶은데 에러 없이 그냥 실행이 되는 이유를 모르겠습니다.

1 답변

  • 좋아요

    0

    싫어요
    채택 취소하기
      if (usernumberInt === randomNumber) { // 조건식1
        youwin.innerHTML = `You chose : ${usernumberInt}. the machine chose : ${randomNumber}.<br> You win!`;
        youlose.innerHTML = "";
      } else if (usernumberInt !== randomNumber) { // 조건식2
        youlose.innerHTML = `You chose : ${usernumberInt}. the machine chose : ${randomNumber}.<br> You lost!`;
        youwin.innerHTML = "";
      } else if (usernumberInt > rangeInt) { // 조건식3
        alert("Wrong number!");
      }
    

    if-else의 작동방식 때문에 그렇습니다.

    조건식1 > 조건식2 > 조건식3 순으로 보다가 조건식2가 true면 조건식3은 건너뜁니다.

    중요한 조건식을 먼저 판단하도록 순서를 바꿔보세요.

    • 조건식의 순서로 본다는 걸 깜빡했네요, 감사합니다. 바꾸었더니 정상작동합니다. ramrr44 2022.1.18 17:33

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)