在 if 语句中返回导致无法访问的代码错误
Posted
技术标签:
【中文标题】在 if 语句中返回导致无法访问的代码错误【英文标题】:Return in if statement causing unreachable code error 【发布时间】:2012-11-02 11:26:09 【问题描述】:以下代码:
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,我想做我的其他代码。为什么无法访问?
【问题讨论】:
要学习的经验:(1) 编写与您想象的不同的代码很容易,(2) 您的编码风格可以帮助您的代码更简洁。例如,如果您将花括号直接放在 if 语句的右侧,您可以减少插入不正确分号的机会。 感谢您的提示。我已经多次看到 if 语句旁边的花括号并且我尝试过使用它,但是因为我习惯了这种编码风格,所以当我尝试这样做时感觉很尴尬。第 1 课非常正确。 【参考方案1】:if
语句后面有一个分号。
【讨论】:
哦!我没听懂。谢谢!它说我无法在 13 分钟内标记正确答案。我会在 13 分钟后完成。非常感谢! 不客气。有时只需要第二双眼睛。【参考方案2】:有;在 if 语句删除它之后它将起作用:)
【讨论】:
【参考方案3】:if(p==null);
【讨论】:
【参考方案4】:也许是';'在: if(p==null);
【讨论】:
【参考方案5】:去掉 if 后面的分号
【讨论】:
【参考方案6】:你在哪里实例化 ListNode K?
在我看来问题是 ListNode k 没有被实例化。
我认为你需要这样的东西。 ListNode k = new ListNode();
你是在课堂上创建这个吗?
你还有一个 ;如果(p==null)之后;这需要删除。
【讨论】:
这不是问题。我只是将参考点指向 p.getNext()。分号是问题所在。谢谢! 我知道分号是问题,但我没有看到实例化,有时这可能是个大问题。 实例化就在那里。在\\more code
正上方的行中显示ListNode k = p.getNext();
以上是关于在 if 语句中返回导致无法访问的代码错误的主要内容,如果未能解决你的问题,请参考以下文章