什么是关键字在Java中的void方法做的?
我正在寻找一个path查找教程 ,我注意到一个void
方法(class PathTest
,126行)中的return
语句:
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
一个无效的方法,你不能返回任何值 (作为return 5;
),这就是为什么他们称之为无效的方法。 有些人总是使用return语句显式地结束void方法,但这不是强制的。 尽pipe如此,它可以用于早期离开function:
void someFunct(int arg) { if (arg == 0) { //Leave because this is a bad value return; } //Otherwise, do something }
关键字只是从调用堆栈中popup一个框架,将控件返回到函数调用后面的行。
Java语言规范说,如果你的方法返回void,你可以返回没有expression式。
它的function与具有指定参数的函数的返回相同,除了不返回任何内容,因为没有任何东西可以返回,并且控制权被传回给调用方法。
它退出该函数并不返回任何内容。
像return 1;
将会是不正确的,因为它返回整数1。
看到这个例子,你想有条件地添加到列表。 没有“返回”这个词,所有的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; } }