像这样的循环条件怎样解释for ( POSITION pos = GetIterator() ; pos ; )

来源:百度知道 编辑:UC知道 时间:2024/06/03 15:38:22
for ( POSITION pos = GetIterator() ; pos ; )
{
CUploadQueue* pQueue = GetNext( pos );

if ( pQueue->CanAccept( pUpload->m_nProtocol,
pUpload->m_sFileName,
pUpload->m_nFileSize,
pUpload->m_bFilePartial,
pUpload->m_sFileTags ) )
{
if ( pQueue->Enqueue( pUpload, bForce, bForce ) ) return TRUE;
}
}
像上面这个循环,初始化值是POSITION pos = GetIterator() ,条件是pos,变化规律是空值,这是什么意思,怎么循环,不明白,请高手指点?
主要是想明白这么写 是什么意思

意思是进入循环后,GetIterator()仅调用一次 ,赋值给POSITION pos;

然后判断 pos 是否为真,也就是当pos!=0时,执行下面代码,执行到循环最后,继续判断pos是否为0,不为零则继续循环。为零则退出循环。

for里面的第3个值是每循环到代码最后结束时执行。
例如
for(int i=1;i<10;i++)
{
MessageBox("") ;
}
先判断执行条件i<10,
为真则执行MessageBox,执行完再执行i++
再判断执行条件i<10

应该把定义的 变量增长 要不循环就是死循环了