Java 是否有更好的方法来处理这些if语句?
我正在编写一个Java应用程序,它在三个字段xyz中绘制加速度计和陀螺仪的最小/最大/平均值的图形。我希望能够独立地绘制每个因素,即X场中的最大加速度和Z场中的平均加速度等 我使用了最小/最大/平均、加速度/y/z和陀螺仪X/y/z的单选按钮 我还考虑为每个变量制作min/max/avg单选按钮,但是我会有18个单独的变量 以下是我的代码片段:Java 是否有更好的方法来处理这些if语句?,java,if-statement,Java,If Statement,我正在编写一个Java应用程序,它在三个字段xyz中绘制加速度计和陀螺仪的最小/最大/平均值的图形。我希望能够独立地绘制每个因素,即X场中的最大加速度和Z场中的平均加速度等 我使用了最小/最大/平均、加速度/y/z和陀螺仪X/y/z的单选按钮 我还考虑为每个变量制作min/max/avg单选按钮,但是我会有18个单独的变量 以下是我的代码片段: if (selectionAccelX == 1 && selectionAccelY == 0 && selectio
if (selectionAccelX == 1 && selectionAccelY == 0 && selectionAccelZ == 0 &&
selectionGyroX == 0 && selectionGyroY == 0 && selectionGyroZ == 0 &&
selectionXAxis == 0) {
Graphing graphing = new Graphing("Average AccelerationX");
graphing.setAccelerationX(avgAccXSec);
graphing.displayGraphing();
graphing.pack();
RefineryUtilities.centerFrameOnScreen(graphing);
graphing.setVisible(true);
}
有更简单的方法吗?您的代码将一个变量(单选按钮选择器)映射到另一个变量(值选择器)。 一个可能的解决办法是
- 添加一个枚举(再次使用18个值)
- 将枚举的每个值绑定到单选按钮的返回值
- 根据返回值添加开关/案例,以触发正确的行为
我认为这不是较少的代码,而是更具可读性。很抱歉,忘了包含selectionXAxis用于秒和分钟欢迎使用StackOverflow。如果这些是单选按钮并且它们是分组的,那么selectionAccelX==1是否意味着其他按钮(selectionAccelY和下面的按钮)都是0?您可能需要代码复查堆栈交换。在任何情况下,都很难说不知道代码是如何组织的。似乎您有一个状态图(加速度、陀螺仪、轴等)到您想要做的事情,这意味着它可以缩短为状态图=>实现。