为了账号安全,请及时绑定邮箱和手机立即绑定

将 if 语句转换为 switch 语句

将 if 语句转换为 switch 语句

千万里不及你 2021-10-29 15:14:03
我需要将函数中的 if 语句转换为用于赋值的 switch 语句。该函数需要做的是在用户按下提交按钮时让用户输入成为显示的列表项。当输入的数量等于 5 时,它会显示“感谢您的建议”。我将原始 if 语句作为注释包含在内。我不知道从哪里开始,以便它与 if 语句的工作方式相同。    <article>        <div id="results">            <ul>                <li id="item1"></li>                <li id="item2"></li>                <li id="item3"></li>                <li id="item4"></li>                <li id="item5"></li>            </ul>            <p id="resultsExpl"></p>        </div>        <form>            <fieldset>                <label for="toolBox" id="placeLabel">                    Type the name of a tool, then click Submit:                </label>                <input type="text" id="toolBox" />            </fieldset>            <fieldset>                <button type="button" id="button">Submit</button>            </fieldset>        </form>    </article>    <script>        // global variables        var i=1;        var listItem = "";        // function to add input to list        function processInput()         {            /*            if (i<=5)             {                listItem = "item" + i;                document.getElementById(listItem).innerHTML = document.getElementById("toolBox").value;                document.getElementById("toolBox").value = "";                if (i==5)                 {                    document.getElementById("resultsExpl").innerHTML = "Thanks for your suggestions.";                }                i++;            }            */            switch (i) {                case 5:                    document.getElementById("resultsExpl").innerHTML = "Thanks for your suggestions.";                    break;                case default:                    listItem = "item" + i;                    document.getElementById(listItem).innerHTML = document.getElementById("toolBox").value;                    document.getElementById("toolBox").value = "";                    i++;            }        }
查看完整描述

2 回答

?
米琪卡哇伊

TA贡献1998条经验 获得超6个赞

我会引用道格拉斯·克罗克福德 (Douglas Crockford) 的话:Javascript the good part

switch 语句是一个强大的功能。像大多数有能力的特性一样,它有很多问题——在一个案例中的每个语句之后使用 break 的要求、过程控制流、不合适的语法、代码块的处理等等!不幸的是,解决这些问题需要我们重写它的核心操作方式,并且规范将完全改变,对于像 JavaScript 这样的语言,这将产生大量的向后兼容性问题。

底线:坚持 if/else if/else 语句。


查看完整回答
反对 回复 2021-10-29
?
千巷猫影

TA贡献1829条经验 获得超7个赞

我能够弄清楚。我意识到我把“case default”而不是“default”。我必须包含一些从默认到 case 5 的代码,以便它显示最后一个输入以及消息。我还将 i++ 放在 switch 语句之外,以便它在第 5 次迭代后停止,但不会替换最后一个输入。


switch (i) {

    case 5:

        listItem = "item" + i;

        document.getElementById(listItem).innerHTML = document.getElementById("toolBox").value;

        document.getElementById("toolBox").value = "";

        document.getElementById("resultsExpl").innerHTML = "Thanks for your suggestions.";

        break;

    default:

        listItem = "item" + i;

        document.getElementById(listItem).innerHTML = document.getElementById("toolBox").value;

        document.getElementById("toolBox").value = "";

}

i++;


查看完整回答
反对 回复 2021-10-29
  • 2 回答
  • 0 关注
  • 380 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信