- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
今天,有人问我在 Java 中对 return
关键字的不当使用。我编写了一个简单的 for
循环来验证数组中是否存在某些内容。假设 array
是一个长度为 n
的数组,这是我的代码:
for (int i = 0; i < array.length; ++i) {
if (array[i] == valueToFind) {
return true;
}
}
return false;
现在有人告诉我,这不是很好的编程,因为我在循环中使用 return
语句,这会导致垃圾收集出现故障。因此,更好的代码是:
int i = 0;
while (i < array.length && array[i] != valueToFind) {
++i;
}
return i != array.length;
问题是我无法正确解释为什么第一个 for 循环不是一个好习惯。谁能给我解释一下?
最佳答案
Now someone told me that this is not very good programming because I use the return statement inside a loop and this would cause garbage collection to malfunction.
这是不正确的,建议您应该对该人的其他建议持怀疑态度。
“只有一个返回语句”(或更一般地说,只有一个退出点)的口头禅在你必须自己管理所有资源的语言中很重要 - 这样你就可以确保你将所有清理代码放在一个地方。
它在 Java 中的用处要小得多:一旦你知道你应该返回(以及返回值应该是什么),就直接返回。这样阅读起来就更简单了——你不必考虑方法的任何其余部分来计算还会发生什么(除了 finally
block )。
关于java - 在 for 循环或外循环中返回,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10800195/
在以下python代码中: narg=len(sys.argv) print "@length arg= ", narg if narg == 1: print "@Usage: in
我需要遍历三个列表并处理每个组合。最外层和第二级循环(list1/list2)的顺序取决于一些排序规则。此外,我在最后一个 (list3) foreach 循环之前和之后都有一些逻辑。ProcesPa
这个问题在这里已经有了答案: How do I break out of nested loops in Java? (37 个回答) 关闭6年前. 如果我在循环中有循环,并且一旦满足 if 语句我想
谁能解释一下这个算法的时间复杂度是多少? for (i = 1; i = n + n/2 + n/3 ... n/n但是是 < n + 1 + n/2 + 1 + n/3 + 1 + n/4 + 1.
我将更新从 foreach 循环生成的特定 ID 的值字段。 $sql = "SELECT `user_id`, max(case when `meta_key` = 'link' the
我是一名优秀的程序员,十分优秀!