繁体   English   中英

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

[英]Return in if statement causing unreachable code error

如下代码:

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

if您的if语句后有一个分号。

有 ; 如果if语句将其删除,它将起作用:)

if(p==null); <-删除最后的分号

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

如果您要删除分号

您在哪里实例化ListNode K?

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

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

您是在课堂上创建的吗?

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM