Java Permutation和布尔标志的组合

use*_*625 5 java

我有一些布尔变量将作为参数传递

boolean var1;
boolean var2;
boolean var3;
boolean var4;
Run Code Online (Sandbox Code Playgroud)

根据这些变量,我必须编写类似这样的代码

if (var1 && !var2 && !var3 && !var4) {
  //do something
}
elsif (var1 && var2 && !var3 && !var4) {
  //do something
}
Run Code Online (Sandbox Code Playgroud)

...等等..使用所有可能的组合.我可以使用if-else语句来做到这一点.需要知道是否有更好的方法.提前致谢.

man*_*uti 5

建立一个位模式出了四个布尔变量,例如0110手段var1 = falsevar2 = truevar3 = truevar4 = false

然后您可以switch在生成的数字上使用该构造。

int b = (var1 ? 8 : 0) | (var2 ? 4 : 0) | (var3 ? 2 : 0) | (var4 ? 1 : 0);
switch(b) {
   case 0:
      ...
   case 1:
      ...
}
Run Code Online (Sandbox Code Playgroud)