java if语句似乎不起作用

ely*_*hiv -3 java

我的项目中有以下代码:

private void initCS() {
    CarsMakerData cmd = NetWorkData.data[key - 1];
    if (cmd.portClient != 0);
    {
        System.out.println(cmd.portClient);
        client = new CarsMakerClient(this, cmd.ipClient, cmd.portClient);
        client.start();
    }
}
Run Code Online (Sandbox Code Playgroud)

我得到以下输出:

770
0
0
0
Run Code Online (Sandbox Code Playgroud)

我期待770但不是0 ......

该数组NetWorkData.data在静态构造函数中初始化.key在函数的所有四次调用中都是唯一的.

任何人都可以解释为什么我得到那些零?这可能是因为多线程吗?

(我在Linux系统上使用eclipse,使用OpenJDK 2.4.7)

Jes*_*per 5

if (cmd.portClient != 0);
Run Code Online (Sandbox Code Playgroud)

删除分号.

分号作为空语句.上面的行意味着:"如果cmd.portClient不是零,什么都不做".它之间{}之后的块与if语句无关,并且将始终执行.

  • 确实.然而,这应该只是一个接近投票的"简单的印刷错误". (3认同)