Java 将这些口头规则转化为条件
我对来自4个html字段的数据应用了某些条件,这些字段分为两类:类别A(字段A1和A2)和类别B(字段B1和B2) N.B:我对如何以优雅的方式实现这一点感到困惑 规则: 1) 当这4个字段为空时,我返回一条消息,说明字段为空 2) 当字段A1、A2有效且B1、B2为空时,我将根据类别A应用操作 3) 规则例外(2):当字段A1有效且字段A2为空时,A2为A2赋值(例如A2=A1++) 4) 当字段B1、B2有效且A1、A2为空时,我将根据类别B应用操作 5) 规则(4)的例外情况:当字段B1有效且字段B2为空时,B2 I为B2赋值(例如B2=B1++) 6) 如果所有字段都有效,我将根据所有字段应用操作Java 将这些口头规则转化为条件,java,if-statement,Java,If Statement,我对来自4个html字段的数据应用了某些条件,这些字段分为两类:类别A(字段A1和A2)和类别B(字段B1和B2) N.B:我对如何以优雅的方式实现这一点感到困惑 规则: 1) 当这4个字段为空时,我返回一条消息,说明字段为空 2) 当字段A1、A2有效且B1、B2为空时,我将根据类别A应用操作 3) 规则例外(2):当字段A1有效且字段A2为空时,A2为A2赋值(例如A2=A1++) 4) 当字段B1、B2有效且A1、A2为空时,我将根据类别B应用操作 5) 规则(4)的例外情况:当字段B1有
if ( A1 == '' && A2 == '' && B1 == '' && B2 == '' ) {
System.out.println("empty fields");
}else if () {
} else {
}
类似的东西
if( A1 == "" && A2 == "" && A3 == "" && A4 == "")
System.out.println("empty fields")
else if(A1.IsValid() && A2.IsValid() && B1.IsValid() && B2.IsValid()
DoSomethingElseAB();
else if( A1.IsValid() )
{
if(A2 == "")
A2 = A1++;
else if ( B1 == "" & B2 == "")
DoSomethingElseA();
if( A2.IsValid() && B2 == "" )
B2 = B1++;
else if ( B1.IsValid() && B2.IsValid() && A1 == "" && A2 == "")
DoSomethingElseB()
}
您可以利用二者的威力为任何字段输入集生成唯一的组合。您甚至可以(应该)隐藏枚举中的值。这将很容易让您处理任何可能的输入集 然而,为了举例说明,它看起来像:
// assign values to rules to each and accumulate:
static final int ALL_EMPTY = 0;
static final int RULE_3 = 1;
// ....rest of the rules
static final int RULE_4 = 12; // this is 0 + 0 + 4 + 8
int settings = 0;
if (A1.isValid()) {
settings += 1;
}
if (A2.isValid()) {
settings += 2;
}
if (B1.isValid()) {
settings += 4;
}
if (B2.isValid()) {
settings += 8;
}
switch (settings) {
case ALL_EMPTY:
// output message
break;
case RULE_3:
// do rule 3
break;
// etc, etc (for each rule you need)
}
我在规则5中犯了一个错误,B类不取决于一个好主意,我将尝试将它与@Adam示例结合起来,并为我找到最好的方法。