【问题标题】:how to put a switch in a variable in javascript?如何在javascript中的变量中放置开关?
【发布时间】:2016-07-12 16:38:16
【问题描述】:

我正在制作一个小游戏,我必须在它们自身内部放置多个开关,所以我真的需要知道如何将一个开关放在几个单词中,这样我才能制作这个游戏。我已经尝试过,以便将其完全写出来,但它需要永远,而且对于什么是什么非常困惑。请帮忙!

编辑:对不起,我让这件事变得如此混乱......让我再用英语说一遍(:我需要做的是让他们选择其中一种情况,或者如果他们不选择任何一个(默认)它会重新激活开关。人们选择的方式是通过提示。所以我认为我可以做的是将开关转换为变量,然后在开关内使用该变量,基本上创建一个无穷无尽如果他们选择默认,它会再次询问他们。这是一个示例,我将在一分钟内发布它

给你!:

    //this is the variable holding the switch
    /*I I I I I*/
    /*V V V V V*/

    var switch1 = {
    var choice = prompt("do you choose EXAMPLE or EXAMPLE").toUpperCase()
    switch(choice) {
        case 'EXAMPLE':
            //this will repeat the whole prompt
            switch1
        break;
        default:
            //this will repeat it too
            switch1
        break; }
    }

那么我将如何做到这一点并让 java 接受这个@ajaysinghdav10d?

【问题讨论】:

  • 请看下面的更新答案

标签: javascript variables switch-statement


【解决方案1】:

JavaScript 允许您嵌套 switch 语句。

看看这个虚拟示例,其中服务返回客户的位置和他选择的产品。根据 Choice 和 Location 的组合,调用返回最近商店坐标的函数;我在必要时使用了虚拟值,并使用了警告来解释嵌套 switch 语句中的控制流:

var choice = "CHO2"; /* call getChoice() function returning values from {CHO1, CHO2, ...}*/
var location = "LOC1"; /*call getLocality() function returning values from {LOC1, LOC2, ...}*/
switch (location) {
    case "LOC1":
        switch (choice) {
            case "CHO1":
                /* redirectToCHO1ofLOC1() is a function returning co-ordinates of the store*/
                alert("redirectToCHO1ofLOC1");
                break;
            case "CHO2":
                alert("redirectToCHO2ofLOC1");
                break;
            default:
                alert("redirectToRegret");
                break;
        }
        break;
    case "LOC2":
        switch (choice) {
            case "CHO1":
                /* redirectToCHO1ofLOC2() is a function returning co-ordinates of the store*/
                alert("redirectToCHO1ofLOC2");
                break;
            case "CHO2":
                alert("redirectToCHO1ofLOC2");
                redirectToCHO2ofLOC2();
                break;
            default:
                alert("redirectToRegret");
                break;
        }
        break;
    default:
        alert("redirectToRegret");
        break;

}

根据新上下文更新答案: 您必须为此使用递归。将您的开关放在一个函数中,并从您的开关的 case 语句中调用该函数,请看一下:

function recursiveSwitch() {
    var choice = prompt("do you choose EXAMPLE or EXAMPLE").toUpperCase()
    switch (choice) {
        case 'EXAMPLE':
            //this will repeat the whole prompt
            recursiveSwitch();
            break;
        default:
            //this will repeat it too
            recursiveSwitch();
            break;
    }
}

现在只需从您想要的任何地方调用 recursiveSwitch 函数,就会开始无限循环。

【讨论】:

  • 非常感谢!我发现的另一种方法(我因为不记得而打自己的脸)只是使用while循环....我还发布了另一个问题,关于我结合了switch Math.random和if / else if语句的问题大声笑帮助将不胜感激
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-06-20
  • 1970-01-01
  • 1970-01-01
  • 2019-07-06
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多