2016-07-12 32 views
-2

我正在做一个小型的小游戏,我不得不在自己内部放置多个开关,所以我真的需要知道如何将开关转换成几个单词,以便我可以制作这款游戏​​。我已经尝试过,以便它完全写出来,但它需要永远,它是什么是非常混乱。请帮忙!如何把一个开关在JavaScript中的变量?

编辑:对不起我做了这个如此混乱...让我用英语再说一遍(:我需要做的是让它所以当他们要么选择其中一种情况下,或者如果他们没有选择的他们(默认)会重新激活开关,人们选择的方式是通过提示符,所以我认为我可以做的是切换到一个变量,然后在开关内使用该变量,基本上创建一个无尽的东西,如果他们选择默认情况下,再次要求他们。这里有一个例子,我将它张贴在一分钟内

在这里你去!:

//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?

+0

请看下面更新的答案 – ajaysinghdav10d

回答

0

JavaScript允许您嵌套开关语句。

看看这个虚拟示例,其中服务返回客户的位置和他选择的产品。基于选择和位置的组合,返回最近商店的坐标的函数被称为;我已经使用虚拟值,其中以往任何时候都需要和警报解释嵌套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; 

} 

基于新的上下文更新的答案: 必须使用递归对这一问题。把你的开关函数中并调用从交换机的情况下语句的功能,请看看这个:

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功能。

+0

谢谢!另一种方法,我发现(我打在自己的脸上不记得)只是使用一个while循环....我还发布了另一个问题,我已经结合了开关Math.random和if/else if语句的问题大声笑的帮助将不胜感激 –