`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 无效。
伙计们,方法中的单个 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 无效。