我有一个具有四个字段简化的Java IF或CASE语句
<field1>
<field2>
<field3>
<field4>
这些字段的值可以为TRUE或FALSE的XML文件。我想要确定输出是A,B,C还是D.为此,我必须查看这四个字段,每个组合都意味着输出是A,B,C或D.可能的组合和输出如下所述:
1T, 2F, 3F, 4F; A
1T, 2T, 3F, 4F; B
1T, 2T, 3T, 4F; C
1T, 2T, 3T, 4T; C
1T, 2F, 3T, 4F; A
1T, 2F, 3T, 4T; A
1T, 2F, 3F, 4T; A
1T, 2T, 3F, 4T; B
的数字表示场号和字符中的数字表示的值是否是真还是假,例如,第一组合(-1T, 2F, 3F, 4F; A)
是说如果FIELD1是TRUE后,FIELD2是假,field3为false,则输出为A. 如果不匹配,则输出为D.
很明显,我可以这样做
if(field1, !field2, !field3, !field4)
return 'A'
else if(field1, field2, !field3, !field4)
return 'B'
else if(field1, field2, field3, !field4)
return 'C'
...
....
....
and so on
需要注意的是,其中一些领域可以为空(即标签可能不存在)。缺少100条IF语句,是否有更简单的方法来编码这些组合?
在此先感谢
http://en.wikipedia.org/wiki/Karnaugh_map –
集团它们,例如字段1总是必须是真实的(从我能收集的内容中),所以只需将其余的if包括在内以便检查。然后你可以用类似的方式做其他3个 – RyanS
你是否错过了一些可能的输出,或者将值1永远为真? – thegrinner