返回if语句导致无法访问的代码错误

时间:2012-11-13 23:42:25

标签: java if-statement compiler-errors return unreachable-statement

以下代码:

public static void print(ListNode p)
{
    System.out.print("[");
    if(p==null);
    {
        System.out.println("]");
        return;
    }
    ListNode k = p.getNext();
    //more code
}

导致以下编译错误:

 ----jGRASP exec: javac -g Josephus_5_Rajolu.java

Josephus_5_Rajolu.java:53: error: unreachable statement
            ListNode k = p.getNext();
                     ^
1 error

 ----jGRASP wedge2: exit code for process is 1.
 ----jGRASP: operation complete.

为什么会这样? 我只返回p = null。如果p!= null,我想做我的其他代码。为什么无法访问?

6 个答案:

答案 0 :(得分:12)

if声明之后有一个分号。

答案 1 :(得分:3)

有;在if语句删除后,它将起作用:)

答案 2 :(得分:2)

if(p==null);< - 删除末尾的分号

答案 3 :(得分:2)

也许是';'在:
    if(p == null);

答案 4 :(得分:1)

删除if后面的分号

答案 5 :(得分:1)

你在哪里实例化ListNode K?

我觉得问题是ListNode k没有被实例化。

我认为你需要这样的东西。 ListNode k = new ListNode();

你是否在班上创造了这个?

你也有; if之后(p == null);这需要删除。