1

以下代码:

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,我想做我的其他代码。为什么无法到达?

4

6 回答 6

12

if你的陈述后面有一个分号。

于 2012-11-13T23:43:54.513 回答
3

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

于 2012-11-13T23:45:19.797 回答
2

if(p==null);<-- 去掉末尾的分号

于 2012-11-13T23:44:18.883 回答
2

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

于 2012-11-13T23:44:39.367 回答
1

删除 if 后的分号

于 2012-11-13T23:47:43.167 回答
1

你在哪里实例化 ListNode K?

在我看来,问题是 ListNode k 没有被实例化。

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

你是在课堂上创造这个吗?

你还有一个 ; 如果(p==null)之后;那需要被删除。

于 2012-11-13T23:50:22.410 回答