2016-06-09 97 views
-7

例如,我有以下代码;开关盒(一个盒子与另一个盒子相交)

switch ("SS") { 
    case "SS": 
     word = "hello"; 
     break; 
    case "SSS": 
     word = "bye"; 
     break; 
} 

我在寻找SSS,但是当它看到第一个SS,它与第一种情况相匹配,并且word = hello 我如何修改代码时,我有这样的情况,其中一个案例相交另一种情况?

+0

的情况是相同的,当你有串。 –

+0

反转两种情况? – jonrsharpe

+0

我反转,但结果是一样的。它转到了“SS”案例。 –

回答

0

使它切换条件为一个字符串。

var condition = '0';// or '00' 
switch (condition) { 
    case '0': 
     word = "hello"; 
     break; 
    case '00': 
     word = "bye"; 
     break; 
} 
+0

''00''是非法字符文字 – Holger

+0

@Holger您通过浏览器控制台检查它 – azad

+0

是的,我在Java中想了一下:-( – Holger

0

解析它作为字符串,并使用该

switch ("00") { 
case "0": 
    word = "hello"; 
    break; 
case "00": 
    word = "bye"; 
    break; 

}

+0

这不工作,因为我说。 –

+0

但是,为什么你使用字符串代替变量? – David

+0

启用常量表达式是无稽之谈,没有什么可以开启的。 – Holger

1

你得到是因为00 = 0; 如果你想实现的愿望造成的,使用字符串而非数字如下:

var condition = "00"; 
switch (condition) { 
     case "0": 
      word = console.log("hello"); 
      break; 
     case "00": 
      word = console.log("bye"); 
      break; 
} 
+0

打开常量表达式是无稽之谈,没有什么可以开启的。 – Holger

0

00是不正确的,你试图通过这个值作为一个整数。一个整数不能以0开头,后面跟一个东西。在后台的00值将被改造成一个简单的0

如果你想保持你的方法,你应该把它转换成像'00'

的字符串,并做如下:

switch ('00') { 
    case '0': 
     word = "hello"; 
     break; 
    case '00': 
     word = "bye"; 
     break; 
} 
0

尝试这

switch ('00') { 
    case '0': 
     word = "hello"; 
     break; 
    case '00': 
     word = "bye"; 
     break; 
} 

结果是

再见

0

switch荷兰国际集团在文字"SS"总是带你去"SS"情况标签(或default - 如果提供 - 如果"SS"缺失的情况下,标签)。

通常情况下,您倾向于打开变量,虽然标签将是常数。

如果您希望程序控制流继续进入case正下方的另一个程序控制流,请删除相应的break;语句。

0
switch("00") 
{ 
case "0": 
    console.log("Hello");break; 
case "00": 
    console.log("Bye");break; 
} 

使用字符串而不是数字。 如果你有一个号码,以便开关状态 即开关(input.toString())内将其更改为字符串{...} 这将正常工作