JS中的切换大小写中断和未定义的值

问题描述 投票:0回答:1

我正在用HTML / JS / CSS创建一个小游戏进行练习,并用<tr></tr<td></td>创建了一个100平方的棋盘游戏。

[我的棋盘上有两名球员,每回合,我检查两名球员周围的方格,看是否在该方格上有武器或一名玩家。

但是要检查广场上是否有玩家,我需要先检查广场是否存在。这就是为什么我使用很多switch case语句的原因:

switch (true) {
    case (squareAround != undefined): //I check if a square around is not undefined
       switch (true) { //if the square exists, let's check if there is a player on it
          case (playerOnIt === true):
             //start the fight if there is a player on it
       }
}

这当然是简化版本。 breakdefault语句不在此处。问题是,有时正方形是“未定义的”,并且程序没有按照我的意愿进行下一步。但是另一些时候,检测到正方形为“未定义”,但程序仍继续运行

。情况显然是“假”,但开关箱不起作用。

我使用了控制台,在this exemple无效的地方:在前两种情况下,正方形存在,然后向我展示了两个HTML元素。

但是在第三种情况下,它是错误的,但是switch的情况无论如何都可以工作,并且走得更远,并且给了我HTML元素……这是“未定义”!

可能会出什么问题?

感谢您的帮助

编辑:这是一些原始代码,请回答某人的问题。但是我不知道它是否可以帮助:

switch (true) {
    case ($('td')[numberCasePlayer + i + l] != undefined):
        switch (true) {
            case ($('td')[numberCasePlayer + i + l].getAttribute('playeronit') === playeronitCheck):
                fight()
                break
        }
        case ($('td')[numberCasePlayer + i + m] != undefined):
            switch (true) {
                case ($('td')[numberCasePlayer + i + m].getAttribute('playeronit') === playeronitCheck):
                    fight()
                    break
            }

            case ($('td')[numberCasePlayer + i + n] != undefined):
                switch (true) {
                    case ($('td')[numberCasePlayer + i + n].getAttribute('playeronit') === playeronitCheck):
                        fight()
                        break
                }
                case ($('td')[numberCasePlayer + i].getAttribute('weapon') === 'true'):
                    $('#' + $('td')[numberCasePlayer + i].getAttribute('weapontype')).css('display', 'none')
}
break

我正在用HTML / JS / CSS创建一个小游戏进行练习,并使用

]创建了一个100平方的棋盘游戏。我的董事会有两名球员,并且在...

switch语句的正确格式如下:

switch(someVariable) {
  case value1: doSomething; break;
  case value2: doSomething; break;
  case value3: doSomething; break;
  ...
  default: doSomething;
}

如果仅使用if语句,这很简单。

if(squareAround) {
  if(playerOnIt) {
    //start the fight if there is a player on it
  }
}
javascript html switch-statement boolean undefined
1个回答
0
投票

switch语句的正确格式如下:

© www.soinside.com 2019 - 2024. All rights reserved.