问题被打印两次(提供正确答案后)JavaScript

The question is printed twice ( after providing the right answer ) JavaScript

我想做的是让用户提供答案(布 - 石头 - 剪刀)。 我获取用户的输入并应用 while 循环逻辑来检查答案是否是三种可能性之一。 问题是第一次弹出提示时我提供(三种可能性之一)它再次询问我,在它再次询问我并应用它正常工作的三种可能性之一之后。

我的问题是为什么在这种情况下它会问两次? 提前致谢

/*代码*/

const Rock = "rock";
const Paper = "paper";
const Scissors = "scissors";

const userInput = () => {
  const askingQuestion =
    "Please choose between the following : Rock Paper or Scissors";
  let captureUserInput = prompt(askingQuestion).toLowerCase();
  while (
    captureUserInput !== Rock ||
    captureUserInput !== Paper ||
    captureUserInput !== Scissors
  ) {
    captureUserInput = prompt(askingQuestion);
    if (
      captureUserInput === Rock ||
      captureUserInput === Paper ||
      captureUserInput === Scissors
    ) {
      document.write(
        `Your Answer is right ! and you choose ${captureUserInput}`
      );
      break;
    }
  }
};

const computerInput = () => {
  const computerChoice = Math.floor(Math.random() * 3);
  console.log(computerChoice);
};

userInput();
computerInput();

你可以不用循环

const Rock = "rock";
const Paper = "paper";
const Scissors = "scissors";

const userInput = () => {
  const askingQuestion =
  "Please choose between the following : Rock Paper or Scissors";

  let captureUserInput = prompt(askingQuestion).toLowerCase();

  if (captureUserInput === Rock ||
     captureUserInput === Paper ||
     captureUserInput === Scissors) {
     console.log('valid')
   } else {
     console.log('Invalid')
     //call again recursive
     userInput()
  }
};

const computerInput = () => {
   const computerChoice = Math.floor(Math.random() * 3);
   console.log(computerChoice);
};

 userInput();
 computerInput();

这样您将减少代码和执行时间