Java 是否有更好的方法来处理这些if语句?

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

我正在编写一个Java应用程序,它在三个字段xyz中绘制加速度计和陀螺仪的最小/最大/平均值的图形。我希望能够独立地绘制每个因素,即X场中的最大加速度和Z场中的平均加速度等

我使用了最小/最大/平均、加速度/y/z和陀螺仪X/y/z的单选按钮

我还考虑为每个变量制作min/max/avg单选按钮,但是我会有18个单独的变量

以下是我的代码片段:

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?您可能需要代码复查堆栈交换。在任何情况下,都很难说不知道代码是如何组织的。似乎您有一个状态图(加速度、陀螺仪、轴等)到您想要做的事情,这意味着它可以缩短为状态图=>实现。