【发布时间】:2020-06-08 15:43:13
【问题描述】:
我正在学习java,我陷入了一个愚蠢的境地。
我可以把我所有的代码都扔在这里,但这只会让你更加困惑。于是我把我的逻辑思维变成了这样:
if (a)
{
*instruction 1*
}
if (!a && b && !c)
{
*instruction 2*
}
if (!a && b && c)
{
*instruction 3*
}
else
{
*instruction 4*
}
我只想知道我是否可以简化这个,所以我不使用这么多“if”语句...... 我想知道您是如何得出结论的。
提前致谢! (是的,我很笨,帮帮我)
编辑:
【问题讨论】:
-
没有实际代码很难说,但这种复杂性可能是一种气味。可以将行为(指令 1 等)移动到某个接口的具体实现吗?另见:告诉不要问
-
我认为实际的代码在这里并不重要。我将很快在帖子中添加一个真值表,以便您了解我期望从这段代码中得到什么结果。
-
如果您有 4 条指令不相同,那么您无法避免 4 条逻辑路径。您将必须定义 4 个逻辑表达式,从而导致 4 条不同的指令。
-
是的,我总是试图让事情变得比他们能得到的更简单。非常感谢!
-
真值表的变量可用于构建上下文,其中上下文是
Map<Context, List<Instruction>> truthTableHandlers的键。
标签: java if-statement logic simplify