我有 2 个变量,width
和 height
作为整数。其中任何一个都可以是正数或负数(不是零)。所以自然有4种情况;
-
width > 0 && height > 0
-
width > 0 && height < 0
-
width < 0 && height > 0
-
width < 0 && height < 0
现在我想在不使用 4 个 if 语句的情况下对这 4 个案例中的每一个采取不同的操作。
有没有办法聚合这些案例,以便可以将其作为简单的 switch case
switch( aggregate ){
case 1:
case 2:
case 3:
case 4:
}
如果没有比使用 if
更好的方法对于每个然后在 3D 空间中,您有 3 个长度 (x,y,z)
将有 27 个 if
block 。
如果这很重要,我正在使用 javascript。
最佳答案
在 javascript 中这很简单,只需将条件倒置即可:
switch(true)
{
case (width > 0 && height > 0):
break;
case (width > 0 && height < 0):
break;
case (width < 0 && height > 0):
break;
case (width < 0 && height < 0):
break;
default:
}
这也适用于 VB6/VBA,但不适用于 C++ 和 C# 等许多其他语言。
这是一个简单的证明:http://jsfiddle.net/avuxj/
关于math - 在 switch case 语句中检测 2 个变量值的 4 个排列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7360600/