我正在看一个寻路教程,我注意到方法return
中的一个语句void
(类PathTest
,第 126 行):
if ((x < 0) || (y < 0) || (x >= map.getWidthInTiles()) || (y >= map.getHeightInTiles())) {
return;
}
我是Java的新手。谁能告诉我为什么它在那里?据我所知,return
不允许使用 void 方法。
它只是在此时退出该方法。一旦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
一个 void 方法,你不能返回任何值(如return 5;
),这就是他们称之为void方法的原因。有些人总是用 return 语句明确地结束 void 方法,但这不是强制性的。不过,它可以用来提前离开函数:
void someFunct(int arg)
{
if (arg == 0)
{
//Leave because this is a bad value
return;
}
//Otherwise, do something
}
该关键字只是从调用堆栈中弹出一个框架,将控件返回到函数调用之后的行。
Java 语言规范说,如果您的方法返回 void,则可以不带表达式地返回。
它退出函数并且什么也不返回。
类似的东西return 1;
是不正确的,因为它返回整数 1。
它的功能与带有指定参数的函数的 return 相同,只是它什么都不返回,因为没有什么要返回,并且控制权被传递回调用方法。
看这个例子,你想有条件地添加到列表中。如果没有“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;
}
}