Java 数据库插入未发生 inti=0; ContentValues=null; 对于(SortedMap.Entry:mapDefect.entrySet()){ if(i++
因此,我只想在count变量之后访问arraylist,这就是为什么:-Java 数据库插入未发生 inti=0; ContentValues=null; 对于(SortedMap.Entry:mapDefect.entrySet()){ if(i++,java,android,android-sqlite,Java,Android,Android Sqlite,因此,我只想在count变量之后访问arraylist,这就是为什么:- int i=0; ContentValues values = null; for ( SortedMap.Entry<Integer, String> entry : mapDefect.entrySet() ) { if( i++ < count ) continue; if( i < arrlst.size() ) { valu
int i=0;
ContentValues values = null;
for ( SortedMap.Entry<Integer, String> entry : mapDefect.entrySet() ) {
if( i++ < count )
continue;
if( i < arrlst.size() ) {
values = new ContentValues();
Log.d("MAP", "Id :"+entry.getKey()+"Des :"+entry.getValue()+"Co :"+ arrlst.get(i));
values.put( MARKER_COORD, arrlst.get( i ) );
values.put( MARKER_ID, entry.getKey() );
values.put( DEFECT_DESCRIPTION, entry.getValue() );
values.put( IMAGE_ID_F, imageID + 1 );
Log.d( "Err", "in insertNewDefectsDescription" );
long rowId = db.insert( TABLE_DEFECTS, null, values );
long rowId1 = rowId;
i++;
}
}
if(i++为什么在if条件下i也有一个增量?将会发生的是,每次迭代i都会增加两个。也许你要做的是在循环之前先将i初始化为1,然后你可以在if条件下删除i中的+,或者你可以在循环结束时删除i中的+。查看count
很难知道问题的解决方案。我猜i++总是小于count,从而导致跳过循环体的其余部分并检查下一个元素。您很可能需要。if(i++>count).
此外,如果
块您的代码不难理解,则最好对一行使用大括号{}
以下是我的建议
1.为什么不在for循环之前执行i=count。这样可以节省大量迭代次数
2.您的i可能会增加两次,例如
if(i++<count)
continue;
if(i++
即使条件为false,i++也会发生任何i增加的情况,然后在内部
if( i++ < count ) //suppose this condition is false
if(i
逻辑错误,问题解决了。
我使用了if和else,在else区域我增加了I变量,效果很好
if( i < arrlst.size() ) {
...
i++;// It increments i again
}
if(继续)语句跳过for、while或do-while循环的当前迭代。因此,if(i++您应该调试并检查count
、arrlist.size()
和mapDefect.size()
)的值。请注意,您的插入逻辑只会因此而跳闸(窄?)当索引变量i大于count
,但小于arrlist.size()时的窗口
。count在哪里设置?这段代码看起来有点破旧。为什么不在for循环之前执行i=count
。这将节省大量迭代。count在很久以前就设置好了。并且计数中的值是正确的。执行i=count并没有解决问题。出现了一些不规则的问题!!我想增加到count为止不执行任何操作。然后,i将递增直到结束。i和count后面的逻辑似乎正确。调试时,控件将在正确的时间进入/退出。但是if(iif(i<count)
{
..
}
else
i++;