【问题标题】:Attempting to nest if/else statement in while loop尝试在 while 循环中嵌套 if/else 语句
【发布时间】:2020-06-22 22:52:41
【问题描述】:

我正在设置以下 while 循环以继续为输入的每个偶数打印一条消息,但为奇数打印一条不同的消息并停止:

userEnteredNumber = prompt("Please enter a number:");

while (userEnteredNumber%2 === 0) {
  if (userEnteredNumber%2 === 0) {
    document.write(userEnteredNumber + EVEN_MESSAGE);
  } else if (userEnteredNumber%2 !== 0) {
    document.write(userEnteredNumber + NOT_EVEN_MESSAGE);
  }
  userEnteredNumber = prompt("Please enter a number:");
  console.log(userEnteredNumber);
}

现在它会继续打印偶数输入,如果输入奇数则停止,但不会打印奇数消息。不太明白为什么奇怪的消息不会打印。希望有人能帮我澄清一下!

【问题讨论】:

  • 因为你有 while(userEnteredNumber%2 === 0) 所以它会完全跳过整个 while 循环
  • 我想做的事可能吗? IE,用偶数运行while循环,否则打印奇数消息?如果是这样,那会是什么样子?
  • 我想你得问问自己,你到底想做什么?为什么不直接运行没有任何奇偶条件的while循环(例如,如果数字小于0,您可以退出循环),然后根据输入打印奇数或偶数?
  • 这是 JS 类的一部分,我们正在学习 while 和 for 循环。提示是“编写一个要求用户输入偶数的程序。只要输入一个偶数,就会显示该数字,并带有“是偶数”的短语。当用户输入奇数时,输出带有短语“不是偶数”的数字并结束程序。”我认为可以将 if/else 嵌套到 while 循环中。
  • ok.. 结束while循环,你可以使用break; ex sn-p: while(true){if(even){write even}elseif(odd){write odd;休息;}

标签: javascript if-statement while-loop


【解决方案1】:

更多这样的:

while (true) {

    userEnteredNumber = prompt("Please enter a number:");

    if (userEnteredNumber == null) { // they clicked cancel
       break;
    }

    if (userEnteredNumber%2 === 0) {
        document.write(userEnteredNumber + EVEN_MESSAGE);
    } else if (userEnteredNumber%2 !== 0) {
        document.write(userEnteredNumber + NOT_EVEN_MESSAGE);
    } else {
       document.write(NOT_VALID_MESSAGE + userEnteredNumber); 
    }

    console.log(userEnteredNumber);
}

【讨论】:

    【解决方案2】:

    从您的代码中,您可以将其更改为如下所示:

    while (true) {
      userEnteredNumber = prompt("Please enter a number:");
      if (userEnteredNumber%2 === 0) {
        document.write(userEnteredNumber + EVEN_MESSAGE);
      } else if (userEnteredNumber%2 !== 0) {
        document.write(userEnteredNumber + NOT_EVEN_MESSAGE);
        break;
      }
      console.log(userEnteredNumber);
    }
    

    【讨论】:

      猜你喜欢
      • 2023-03-30
      • 1970-01-01
      • 2017-02-06
      • 2012-03-12
      • 2015-12-28
      • 2016-02-14
      • 2015-11-08
      • 2020-10-09
      • 1970-01-01
      相关资源
      最近更新 更多