是否有算法和/或工具用于检测具有相同条件的两组if
语句是否相同?当我说'#34;等同于" - 我的意思是他们为所有给定的输入执行相同的代码。例如:
# set 1
if a
if b
someMethod()
end
end
# set 2
if a && b
someMethod()
end
# set 3
if a || b
someMethod()
end
鉴于这3组if
语句,你可以考虑设置1和设置2为"等效"因为someMethod
仅在a和b为真时执行。同样,集合1和集合3不相等,因为当a为真且b为假时,someMethod
不会被集合1执行,但是在相同条件下将在集合3中执行。
答案 0 :(得分:3)
我会使用Karnaugh Maps,这是非顺序逻辑综合和分析的标准。
为每组if
创建卡诺图
比较地图
如果地图相同,那么if语句是等价的,如果没有,则它们是不同的。
很抱歉找到一个简短的回答,但我不知道还有什么要补充,因为这是基本知识。
[edit1]只是你的情况......
set1 == set2
set3
不同