什么是关键字在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; } }