数组中的算法仅适用于i = 1

时间:2016-01-17 09:27:53

标签: java arrays algorithm

Hello eingineers / programmers。我正在计算悬臂的从右到左的时刻过程。 问题:算法适用于a = 0,a = 1然后它不起作用。代码如下:

objekte []是两个类的对象数组 - Einzelmoment(moment)和Punktlast(单个力)。

for (int a = 0; a < verlauf[0].length; a++) {
        for (int k = 0; k < objekte.length; k++) {
            if (a == 0) {
                verlauf[0][0] = objekte[k].getLage();
                verlauf[1][a] = objekte[k].getKraft();

                if (objekte[k].getClass() == Punktlast.class) {
                    verlauf[2][a] = -(objekte[k].getKraft() * (objekte[a]
                            .getLage() - objekte[k].getLage()));
                } else if (objekte[k].getClass() == Einzelmoment.class) {
                    verlauf[2][a] = -(objekte[k].getMoment());
                }
            }
            else {
                verlauf[0][a] = objekte[k].getLage();
                verlauf[1][a] = objekte[k].getKraft() + verlauf[1][a - 1];

                if (objekte[k].getClass() == Punktlast.class) {

                    for (int j = 1; j == k; j++) {

                        if (objekte[k - j].getClass() == Einzelmoment.class) {

                            verlauf[2][a] += -(objekte[k - j].getMoment());

                        } else if (objekte[k - j].getClass() == Punktlast.class) {
                            verlauf[2][a] += -(objekte[k - j].getKraft() * (objekte[k- j].getLage() - objekte[k].getLage()));
                        }
                        j++;
                    }
                }

                else if (objekte[k].getClass() == Einzelmoment.class) {
                    for (int j = 1; j == k; j++) {

                        if (objekte[k - j].getClass() == Einzelmoment.class) {

                            verlauf[2][a] += -(objekte[k - j].getMoment() + objekte[k].getMoment());

                        } else if (objekte[k - j].getClass() == Punktlast.class) {
                            verlauf[2][a] += -(objekte[k - j].getKraft() * (objekte[k- j].getLage() - objekte[k].getLage()));
                        }
                        j++;
                    }
                }
            }
            a++;
        }

    }

希望不知何故这是有道理的。如您所见here,它适用于a = 1,但不会继续使用其他对象。代码中的问题在于它停止了a = 1?提前谢谢!

0 个答案:

没有答案