return关键字在Java中的void方法中做了什么?

时间:2009-04-13 17:27:42

标签: java methods return void

我正在查看a path finding tutorial,我在return方法(类void,第126行)中注意到PathTest语句:

if ((x < 0) || (y < 0) || (x >= map.getWidthInTiles()) || (y >= map.getHeightInTiles())) {
    return;
}

我是Java的新手。谁能告诉我它为什么存在?据我所知,不允许在void方法中使用return

7 个答案:

答案 0 :(得分:111)

此时只退出方法。执行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
}

答案 1 :(得分:24)

你可以在void方法中使用return,你只是不能返回任何值(如在return 5;中),这就是为什么他们称之为 void 方法。有些人总是使用return语句明确地结束void方法,但它不是强制性的。但可以用于提前离开某个函数:

void someFunct(int arg)
{
    if (arg == 0)
    {
        //Leave because this is a bad value
        return;
    }
    //Otherwise, do something
}

答案 2 :(得分:17)

关键字只是从调用堆栈中弹出一个帧,将控件返回到函数调用之后的行。

答案 3 :(得分:12)

Java语言specification表示如果方法返回void,则可以返回没有表达式。

答案 4 :(得分:2)

它的功能与带有指定参数的函数返回相同,但它不返回任何内容,因为没有任何内容可以返回,并且控制权被传递回调用方法。

答案 5 :(得分:2)

它退出该函数并且不返回任何内容。

return 1;这样的东西会不正确,因为它会返回整数1。

答案 6 :(得分:1)

请参阅此示例,您要有条件地添加到列表中。如果没有&#34;返回&#34;,将执行所有ifs并添加到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;
    }
}