JSP JAVA复杂条件判断问题(紧急请教,2天内解决)
问题好像有条件A.B.C.D.E.F   
 当A满足时B不满足C满足D不满足一个处理.   
 当A满足时C不满足B满足D不满足一个处理. 
 当A满足时C不满足D满足B不满足一个处理.   
 当然条件比这里要复杂很多,就是各种情况互相关联影响. 
 征求有没有利用java中的数据类型多着迭代之类得方式解决. 
 完全用IF判断的方式不在考虑之内. 
 因为用IF写估计至少几百个判断嵌套. 
 主要是为了效率得考虑. 
 项目问题真心急求答案,好心高手帮忙吧!
------解决方案--------------------先帮顶一个~~~有头绪了再来帮解决~
------解决方案--------------------我不是高手 只会用迭代读数据。。。。。。迭代判断?????关注ING 
 LZ是想用容器类保存判断条件(容器类中保存的都是OBJECT类型 使用需要转型)迭代只有3种方法吧 hasNext()  next() remove() 好象都不能满足LZ要求 
 LZ可以修改Iterator类 使它可以完成LZ的需求 
 LZ完全是为了少写代码的考虑不用IF完全不是效率问题 使用迭代只比IF慢不见得会快 
 才7个条件就几百个判断嵌套。。。。。。。。
------解决方案--------------------一共六个条件,怎么也不可能上百个判断吧,2的六次方=64
------解决方案--------------------可以把所有的 处理 预先配置在一个HashMap 里面,然后利用6个条件生成唯一的key,然后根据key在HashMap里面获得你想要的 处理.起码这样代码上可以简洁一些.下面是个简单的例子可以参考一下. 
 import java.util.HashMap;     
 public class Test { 
 	public static boolean[]	a =new boolean[2]; 
 	public static void main(String[] arg){ 
 		String option= " "; 
 		a[0] = true; 
 		a[1] = true;   
 		HashMap actions = new HashMap(); 
 		actions.put( "00 ",  "a[0] = false ,a[1] = false "); 
 		actions.put( "01 ",  "a[0] = false ,a[1] = true "); 
 		actions.put( "10 ",  "a[0] = true ,a[1] = false "); 
 		actions.put( "11 ",  "a[0] = true ,a[1] = true "); 
 		for (int i = 0; i  < a.length; i++) { 
 			if (a[i]) { 
 				option = option +  "1 "; 
 			} else { 
 				option = option +  "0 "; 
 			} 
 		} 
 		String target = (String) actions.get(option); 
 		System.out.println(target); 
 	} 
 } 
------解决方案--------------------可以考虑用位运算啊,这样就能判断多个条件是否同时成立了
------解决方案--------------------就是用模仿中断向量表的方式实现,先得到一个条件号,然后跳转到对应的位置执行
------解决方案--------------------先把互斥的条件挑出来。这样if的次数就更少了。 
 不过这个问题一般应该考虑各个条件之间的逻辑。在逻辑层面上下功夫,重新设定条件,减少交叉判断的次数。 
 在编程上没有多少可以调整的方法。呵呵。
------解决方案--------------------关注~学习中~~
------解决方案--------------------做个二叉树吧,节点接口返回一个boolean值,作判断,叶子执行处理。然后用配置文件配起来。
------解决方案--------------------用Hash(Map或Table)是比较省事的一种,相当于一个对应了一个简单数据库. 
 就拿你这个例子来说 
 A.B.C.D.E.F  真假 用 0(假) 和 1(真)表示. 
 生成64中结果,放入Hash(Map或Table)的数组中.用if..else语句判断也不过用6句. 
 当A满足时 返回 1,不满足时 返回 2 
 ..... 
 最后将返回值拼接起来结果 如 : 001110 
 在从Hash(Map或Table)中取出数据就可以了。