0

ループで追加しているのですが、戻り値が常に0になっていてわかりません。

最後の 2 行のいずれかのコメントを外すと、手動の値が正しく返され、クラスの残りの部分が機能します。ARRAYLIST_SIZE = 10。

public float averageBearing() {
    float sumBng = 0;
    for (int i = 0; i==ARRAYLIST_SIZE; i++) {
        Location l = locList.get(i);
        float tempBearing = l.getBearing();
        sumBng += tempBearing;
    }
    float finalBng = sumBng/ARRAYLIST_SIZE;
    //remove following lines  for real use
    //finalBng = (float) (Math.random()*360);
    //finalBng = (float) 105.0;
    return finalBng;
}

リスト内の場所には関係があると確信しています。ここに add メソッドがあります。場所は移動している場合にのみあるため、今のところ方位を偽装する必要がありますが、私は静止した机にいます。

public void add(Location location) {
    if (locList == null) {
        locList = new ArrayList<Location>();
    }
    //test code to spoof bearing
    location.setBearing((float) 105.0);
    //use only locations with extra data
    if (location.hasBearing() && location.hasSpeed()) {
        locList.add(location);
        mostRecent = location;
        //ensure we have at most 10 recent locations
        //no reason to use stale data
        while (locList.size()>10) {
            locList.remove(0);
        }
    }
    ARRAYLIST_SIZE = locList.size();

}
4

3 に答える 3