开关操作员有问题



在这个动作中,我想说... 如果VS_WRNG为空白,如果VS_WRNGDSCDSQ则设置这两个项目 但是当我在我的 Web 应用程序中单击VS_WRNG并选择 DSC 时,它没有用 LIN 自动填充BOB_TYPE答案。

是我搞砸了代码还是没有那样工作,我需要做一个switch (true)和案例(VS_WRNG != "")?

//Set BoB Type [TEMPORARY]
switch (!VS_WRNG) {
case "":
switch (VS_WRNG) {
case "DSC":
case "DSQ":
switch (VS_BTYP) {
case "":
setValue('BOB_TYPE',"LIN");
VS_BTYP = "LIN";
break;
}
break;
}
break;
}

谢谢

您遇到的主要问题是!VS_WRNG总是导致布尔值。它永远不会导致空字符串"".所以case "":永远不会运行。但即使它确实如此,您的代码仍然无法正常工作:

在这个动作中,我想说...如果VS_WRNG为空白,如果VS_WRNG为 DSC 或 DSQ,则设置这两个项目

VS_WRNG不能同时为空白和 DSC 或 DSQ。您需要重新考虑您的逻辑 - 这些要求现在不兼容且非常不合逻辑。


这也是对开关语句的滥用。如果您的 switch 语句有一个案例,则它是一个 if 语句。只需使用这样的 if 语句:

if(VS_WRNG === "") { ... }

你的中间开关语句也可以用 if 语句实现,因为你编写它只是为了检查两个条件:

if(VS_WRNG == "DSC" || VS_WRNG == "DSQ") { ... }

最新更新