Java 将if-else语句转换为有意义的数据结构

Java 将if-else语句转换为有意义的数据结构,java,data-structures,control-structure,Java,Data Structures,Control Structure,在遗留代码(VB脚本)中有大量嵌套的if-else语句,我想将它们迁移到一个有意义的表示形式,以便在Java应用程序中更容易维护。其中大多数语句用于根据用户选择的参数生成sql语句。有什么建议可以更好地将这个逻辑分支问题建模为一个数据结构,即有向图 例如,如果参数为: 年龄 部门 等级 多个if-else语句的一种替代方法,其中这些条件表示一个特定的状态,那么我通常选择or,如果它们是简单的命令 想想自动售货机,根据机器的状态,比如空/非空/没有硬币,你有特定的行为 另一种可读的方式是switc

在遗留代码(VB脚本)中有大量嵌套的if-else语句,我想将它们迁移到一个有意义的表示形式,以便在Java应用程序中更容易维护。其中大多数语句用于根据用户选择的参数生成sql语句。有什么建议可以更好地将这个逻辑分支问题建模为一个数据结构,即有向

例如,如果参数为:

年龄 部门 等级


多个if-else语句的一种替代方法,其中这些条件表示一个特定的状态,那么我通常选择or,如果它们是简单的命令

想想自动售货机,根据机器的状态,比如空/非空/没有硬币,你有特定的行为

另一种可读的方式是switch-case语句,但这主要使它更可读


看到这个

你能给我看一些伪代码吗?避免使用
if-else
语句的最简单方法是利用
多态性
共享一些代码请给出一个更具体的例子好吗?有一些方法可以避免使用
if-else
链(例如,the),但使用哪种链取决于具体的问题。您能否给出详细信息,如是否存在嵌套的if或它只是if-elseif…?请参阅另一种可读方法是switch-case语句,但这主要使其更具可读性->这不是真的。对于原语,
开关盒
的性能更高。无论如何,
switch case
并不能解决OP的问题。我的问题是有几个复杂的输入参数值组合,不同的字符串块被添加到最终的sql字符串中。我不理解无缘无故的否定投票。没有理由的严重反对票应该被禁止
String finalSQL = “”;
if(department is not ‘HR’){
   // append something to finalSQL
if (age between 21-35)
{
  // append something to finalSQL
}
else if (age between 35-40)
{
// append something to finalSQL
}else{
// append something to finalSQL
}
} else {

if(grade > g7){
// append something to finalSQL
}else if (grade is g2 or g4 or g6){
// append something to finalSQL
} else{
// append something to finalSQL
}

}

return finalSQL;