【发布时间】:2013-10-27 20:37:56
【问题描述】:
所以我的代码旨在将机器人的 y 坐标与目标的 y 坐标进行比较。当我添加打印语句时,我无法让函数返回任何内容。我感觉这与括号有关,但我不确定如何使用它们。
这不是整个程序,但它是其中唯一有错误的部分。
当我尝试编译时:
public class Ex12
{
private byte isTargetNorth(IRobot robot)
{
if (robot.getLocationY() > robot.getTargetLocation().y) {
return 1; System.out.println("north");
} else if (robot.getLocationY() == robot.getTargetLocation().y) {
return 0; System.out.println("no");
} else {
return -1; System.out.println("south");
}
}
}
我收到错误:无法访问的语句
当我尝试这个时:
public class Ex12
{
private byte isTargetNorth(IRobot robot)
{
if (robot.getLocationY() > robot.getTargetLocation().y)
return 1; System.out.println("north");
else if (robot.getLocationY() == robot.getTargetLocation().y)
return 0; System.out.println("no");
else
return -1; System.out.println("south");
}
}
我得到错误:没有'if'的'else'
当我删除 System.out.println() 函数时,我没有收到任何错误。
【问题讨论】:
-
除了明显的问题之外,名称为
isTargetNorth的方法实际上应该返回boolean类型的值,而不是byte。 -
邮件的哪一部分你不明白?
-
@RohitJain:这还不是最糟糕的错误,不是吗?
-
返回前打印消息,返回后不能做某事(不使用try/finally)
-
@JonSkeet 是的。真正的问题已经得到解答。 :)
标签: java if-statement unreachable-statement