java if语句似乎不起作用

时间:2014-06-15 11:46:50

标签: 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();
    }
}

我得到以下输出:

770
0
0
0

我期待770而不是0 ...

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

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

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

1 个答案:

答案 0 :(得分:5)

if (cmd.portClient != 0);

删除分号。

分号表示空语句。上面的行表示:“如果cmd.portClient不为零,则不执行任何操作”。 {}之后的块与if语句无关,并且将始终执行。