簡體   English   中英

For循環不會添加,返回原始值(Android,Java)

[英]For loop won't add, returns original value (android, java)

我要添加一個循環,但是返回值始終為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;
}

我可以肯定地確定列表中的位置有方位角,這是添加方法。 我現在必須欺騙軸承,因為只有在我們移動時該位置才有,但是我在固定的桌子上。

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();

}

循環中的條件表達式正在測試相等性。 由於i為零,並且ARRAYLIST_SIZE為10,因此它在第一次測試中失敗。將其更改為:

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

更改此:

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

對此:

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

您永遠不會因為以下原因而進入for循環

i==ARRAYLIST_SIZE

它應該是

i<ARRAYLIST_SIZE

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM