2012-12-22 51 views
0

Android 2.3.3 問題很簡單。循環迭代12次,因爲它應該迭代11次,就像我的邏輯一樣。有人可以發現這個問題嗎...我忽略了什麼?在Android 2.3.3中迭代for循環

c = db.getData(); 

if(c.getCount() > 0) 
{ 
    c.moveToFirst(); 
    System.out.println("Cursor Values are ::: "+c.toString()); 
    int columCount = c.getColumnCount(); 
    System.out.println("Column Count is ::: "+columCount); 
    boolean isFound = false; 


    do 
    { 
     for(int iteCount = 0; i < columCount; iteCount++) 
     { 
      System.out.println("Loop ::: "+iteCount); 
      String tempString = c.getString(iteCount); 
      System.out.println("Item in TempString is :::"+tempString); 

      if(tempString != null && tempString.equalsIgnoreCase(tempCommand)) 
      { 
        alFirstIndex.remove(0); 
       System.out.println(c.getString(c.getColumnIndex("Command"))); 
       alFirstIndex.add(0, c.getString(c.getColumnIndex("Command"))); 
       isFound = true; 
       break; 
      } 
     } 
     System.out.println("Out of For Loop"); 

     if(isFound) 
     { 
      break; 
     } 

    }while(c.moveToNext()); 

這裏是logcat的::::

12-22 09:13:08.219: I/System.out(25300): Column Count is ::: 11 
12-22 09:13:08.219: I/System.out(25300): Loop ::: 0 
12-22 09:13:08.219: I/System.out(25300): Item in TempString is :::ADD 
12-22 09:13:08.219: I/System.out(25300): Loop ::: 1 
12-22 09:13:08.219: I/System.out(25300): Item in TempString is :::add 
12-22 09:13:08.219: I/System.out(25300): Loop ::: 2 
12-22 09:13:08.219: I/System.out(25300): Item in TempString is :::and 
12-22 09:13:08.219: I/System.out(25300): Loop ::: 3 
12-22 09:13:08.219: I/System.out(25300): Item in TempString is :::had 
12-22 09:13:08.219: I/System.out(25300): Loop ::: 4 
12-22 09:13:08.219: I/System.out(25300): Item in TempString is :::ad 
12-22 09:13:08.219: I/System.out(25300): Loop ::: 5 
12-22 09:13:08.219: I/System.out(25300): Item in TempString is :::anddd 
12-22 09:13:08.219: I/System.out(25300): Loop ::: 6 
12-22 09:13:08.219: I/System.out(25300): Item in TempString is :::anndd 
12-22 09:13:08.219: I/System.out(25300): Loop ::: 7 
12-22 09:13:08.219: I/System.out(25300): Item in TempString is :::null 
12-22 09:13:08.219: I/System.out(25300): Loop ::: 8 
12-22 09:13:08.219: I/System.out(25300): Item in TempString is :::null 
12-22 09:13:08.219: I/System.out(25300): Loop ::: 9 
12-22 09:13:08.219: I/System.out(25300): Item in TempString is :::null 
12-22 09:13:08.219: I/System.out(25300): Loop ::: 10 
12-22 09:13:08.219: I/System.out(25300): Item in TempString is :::null 
12-22 09:13:08.219: I/System.out(25300): Loop ::: 11 
12-22 09:13:08.219: E/CursorWindow(25300): Bad request for field slot 0,11. numRows = 18, numColumns = 11 

columnCount = 11,循環開始與i = 0,應重複,以i < columCount這意味着它應該重複11倍的輸出,但爲什麼它進入FOR再次循環並打印Loop ::: 11

回答

6

在循環:

for(int iteCount = 0; i < columCount; iteCount++) 

您需要使用iteCounti

for(int iteCount = 0; iteCount < columCount; iteCount++) 
+0

謝謝!有趣的我錯過了.. –

+0

很高興我能幫忙! – Sam