这个循环开始时的分号是什么意思?

kc *_*ili 0 java android

当我遇到这个分号时,我正在阅读一个开源代码.我最初认为这是一个错误,但事实并非如此.

在下面的for循环的开放括号之后,分号的功能是什么?

       if (nCount > 0){
            for(; nCount > 0; nCount--){
                if (mBitmaplist[nCount - 1] != null){
                    mBitmaplist[nCount - 1].recycle();
                    mBitmaplist[nCount - 1] = null;
                }
            }
        }
Run Code Online (Sandbox Code Playgroud)

Jig*_*shi 5

这意味着for循环的初始化器部分没有声明

同样,如果你想跳过for循环的增量部分,它看起来就像

for( ; nCount > 0; ){
  // some code
}

// which is like while loop
Run Code Online (Sandbox Code Playgroud)

从JLS开始,这是for循环的格式

BasicForStatement:
    for ( ForInitopt ; Expressionopt ; ForUpdateopt ) Statement
Run Code Online (Sandbox Code Playgroud)

你可以看到所有3个都是可选的