`return` 的目的

Purpose of `return`

伙计们,方法中的单个 return 语句的目的是什么。它会停止循环吗?如果不是,它具体是做什么的?考虑以下示例:

class BinaryTree{

    Node root;

    public void addNode(int key, String name){
        Node newNode = new Node(key, name); 
        if(root == null){
            root = newNode;
        }
        else{
            Node current = root; 
            Node parent = root;
            while(current.key != key){
                parent = current;
                if(key > current.key){
                    current = current.rightChild;
                    if(current == null){
                        parent.rightChild = newNode;
                        return;
                    }
                }
                else{
                    current = current.leftChild;
                    if(current == null){
                        parent.leftChild = newNode;
                        return;
                    }
                }
            }
        }
    }
}

return 语句终止函数。停止执行实际上 return 没有任何值的 void 函数很有用。在这种情况下,一旦找到新节点的正确位置并添加它,就没有必要继续执行该函数,因此使用 return

它不仅停止循环,而且 returns 从函数中无效(无)。所以基本上它停止了功能。

正式地说,没有表情的return会突然完成执行(per JLS 14.17)。 return 也将 return 控制权交还给它的调用者。

使用空 return 块 returns void 的方法是可能的,也是允许的。此处的目的是在满足特定条件时停止方法中的操作。

这与在循环中用 break 代替 return 没有什么不同,因为在这种情况下,它们完成相同的事情:它们都将终止循环并退出该方法(因为没有更多行可执行)。

在这种情况下,如果使用 break,意图会更清楚,因为 return 会使学生或初级开发人员感到困惑。请注意,与 break 不同, 允许您在循环后 运行 编码,return 则不会。

因为函数return无效。 return 只是结束函数,return 无效。