死代码是什么?

V J*_*iah -2 java android dead-code

这是我的代码,Eclipse说的i++是死代码......为什么?

for(int i=0;i<packages.size();i++)
        {
            PInfo pinfo = new PInfo();
            pinfo = packages.get(i);
            if(pinfo.pname.contains("com.imdb.mobile"));
            {
            packagesModified.add(pinfo);
            break;
            }
        }
Run Code Online (Sandbox Code Playgroud)

T.J*_*der 11

因为;这里:

if(pinfo.pname.contains("com.imdb.mobile"));
// ----------------------------------------^
Run Code Online (Sandbox Code Playgroud)

;给出了if一个空的身体,所以它后面的块没有连接if,所以你break;总是发生并i++for从未达到.

你通常不会把;后像控制语句for,while,if等(有一些边缘情况下,所有的逻辑是在结构,但通常你需要一个体块或语句连接到它们).


不相关,但这里没有理由new PInfo():

PInfo pinfo = new PInfo();
//         ^^^^^^^^^^^^^^-- Unnecessary, since you're about to assign
pinfo = packages.get(i);
Run Code Online (Sandbox Code Playgroud)