For循环不会添加,返回原始值(android,java)

时间:2013-05-11 20:49:40

标签: java android for-loop arraylist

我在循环中添加,但返回值始终为0,我无法弄明白。

如果我取消注释最后两行中的一行,它会正确返回手动值,而其余的类也可以。 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();

}

3 个答案:

答案 0 :(得分:3)

循环中的条件表达式是测试相等性。它在第一次测试时失败,因为我为零,ARRAYLIST_SIZE为10.将其更改为:

  for (int i = 0; i<ARRAYLIST_SIZE; i++) {

答案 1 :(得分:3)

改变这个:

for (int i = 0; i==ARRAYLIST_SIZE; i++)

到此:

for (int i = 0; i<ARRAYLIST_SIZE; i++)

答案 2 :(得分:1)

你永远不会因为

而进入for循环
i==ARRAYLIST_SIZE

应该是

i<ARRAYLIST_SIZE