【问题标题】:Switch Statement - Multiple results for single caseSwitch 语句 - 单个案例的多个结果
【发布时间】:2018-09-28 15:03:10
【问题描述】:

我有这个页面:

var count = 0;

function switchStatement() {
  var text;
  var answers = document.getElementById("userInput").value;
  switch (answers) {
    case "":
      text = (count > 0) ? "You didn't type anything." : "Please type something down...";
      if (count < 1)
        count++;
      else
        count = 0;
      break;
    default:
      text = "Good job!";
  }
  document.getElementById("feedback").innerHTML = text;
  document.getElementById("userInput").value = "";
}
<p>Please write something down and press "enter".</p>

<input id="userInput" type="text" onKeyDown="if(event.keyCode==13) switchStatement();">

<p id="feedback"></p>

如果用户在按下“回车”之前没有输入任何内容(即case = "";),则会显示一条消息。如果他再次做同样的事情,就会出现不同的信息。如果他第三次这样做,它将循环回到第一条消息。

如何添加更多消息以避免出现如此小的循环?比如说,如果我想在用户不输入任何内容时显示 5 条不同的消息,我应该在我的代码中进行哪些更改?

【问题讨论】:

  • 拥有一组消息并将其索引到count?

标签: javascript html switch-statement


【解决方案1】:

你可以使用消息数组:

var messages = ["message 1...", "message 2...", "message 3...", "message 4...", "message 5..."]

然后使用count变量作为这个数组的index,依次显示消息。

注意:您必须将count 初始化为默认值0,以防用户输入内容,这样下一个空提交将显示索引0 中的第一条消息。

var count = 0;
var messages = ["message 1...", "message 2...", "message 3...", "message 4...", "message 5..."];

function switchStatement() {
  var text;
  var answers = document.getElementById("userInput").value;

  switch (answers) {
    case "":
      text = messages[count];
      count = count < messages.length - 1 ? count + 1 : 0;
      break;
    default:
      text = "Good job!";
      count = 0;
  }
  document.getElementById("feedback").innerHTML = text;
  document.getElementById("userInput").value = "";
}
<p>Please write something down and press "enter".</p>

<input id="userInput" type="text" onKeyDown="if(event.keyCode==13) switchStatement();">

<p id="feedback"></p>

【讨论】:

    猜你喜欢
    • 2015-06-21
    • 2014-03-15
    • 2015-12-06
    • 1970-01-01
    • 2014-01-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多