我正在查看路径查找教程,并且注意到方法return
内的一条语句void
(class PathTest
,行126):
if ((x < 0) || (y < 0) || (x >= map.getWidthInTiles()) || (y >= map.getHeightInTiles())) {
return;
}
我是Java的新手。谁能告诉我为什么它在那里?据我所知,return
内部不允许使用void方法。
Answers:
它只是在此时退出该方法。一旦return
执行,其余代码将不会执行。
例如。
public void test(int n) {
if (n == 1) {
return;
}
else if (n == 2) {
doStuff();
return;
}
doOtherStuff();
}
请注意,编译器足够聪明,可以告诉您某些代码无法到达:
if (n == 3) {
return;
youWillGetAnError(); //compiler error here
}
return
工作原理很像break
在循环中,只是退出有问题的代码。关于函数的多个退出点的争论很多,有几种语言迫使您采用一种或另一种方式。我不在多个退出点上占据一席之地,但我要指出的是,离开函数会清理本地堆栈。
请参见此示例,您要有条件地添加到列表中。没有单词“ return”,将执行所有if并将其添加到ArrayList中!
Arraylist<String> list = new ArrayList<>();
public void addingToTheList() {
if(isSunday()) {
list.add("Pray today")
return;
}
if(isMonday()) {
list.add("Work today"
return;
}
if(isTuesday()) {
list.add("Tr today")
return;
}
}