我目前正在编写一个程序,该程序将计算物理学中简单运动学方程的剩余变量。我需要有 4/6 个变量,然后我可以计算其他两个变量的结果。就目前而言,我正在使用布尔类型的数组来检测是否输入了哪个变量,并且我必须比较每种情况并重新编写三个公式中的一个来求解该变量。这最终会导致大量臃肿的代码。
这是我的代码中仅一个方程式的示例:
if(variableEntered[1] == false && variableEntered[3] == false) {
// calculate final velocity
double fvNumber = getInitialVelocity() + (getAcceleration() * (getFinalTime() - getInitialTime()));
setFinalVelocity(fvNumber);
// calculate final position
double fpNumber = (getInitialPosition() + (getInitialVelocity() * (getFinalTime() - getInitialTime())) +
((0.5 * getAcceleration()) * ((getFinalTime() - getInitialTime()) * (getFinalTime() - getInitialTime()))));
setFinalPosition(fpNumber);
System.out.printf("The final velocity is: %.2f m/s.", getFinalVelocity());
System.out.println();
System.out.printf("The final position is: %.2f meters.", getFinalPosition());
System.out.println();
}
我使用的三个方程是:
Vf = Vi + a(tf - ti)
Xf = Xi + Vi(tf - ti) + (1/2)a(tf - ti)2
Vf2 - Vi2 = 2a(Xf - Xi)
有什么方法可以缩短它或使它更容易实现吗?使用数组列表会以某种方式工作吗?