今天,有人陪我一起滥用return
Java
中的关键字。我编写了一个简单的for
循环来验证数组中是否存在某些内容。假设array
是一个length数组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循环不是一个好习惯。有人可以给我一个解释吗?
现在有人告诉我这不是一个很好的编程,因为我在循环内使用return语句,这将导致垃圾回收发生故障。
这是不正确的,建议您应该对该人的其他建议持怀疑态度。
在只需要自己管理所有资源的语言中,“仅具有一个return语句”(或更笼统地说,只有一个退出点)的口号 很 重要-
这样可以确保将所有清理代码放在一个位置。
它在Java中的用处不大:只要知道应该返回(以及返回值应该是什么),就返回即可。这样一来,阅读起来就更简单了-
您无需采取任何其他方法即可确定将要发生的其他事情(除了finally
块)。
我有一个嵌套的for循环,但是它会减慢一点处理速度,我如何才能使嵌套循环高效。我需要的是对于外循环的每个值,内循环继续其所有迭代。但是,我不认为它会像两个嵌套循环那样影响计算。我的第二个问题是,循环会影响速度还是会支持我的现象? 我的代码:
loop 有个用途是尝试一个操作直到成功为止。若操作返回一个值,则可能需要将其传递给代码的其余部分:将该值放在 break 之后,并由 loop 表达式返回。 fn main() { let mut counter = 0; let result = loop { counter += 1; if counter == 10 {
我有一个二维布尔数组“poorSignal”,需要编写一个返回网格的方法,如果数组上的一个点为真,则显示X,如果为假,则显示O。这是我的代码: 当我编译时,它在方法的最后一行给出了“missing return statement”。我也不确定“return”\n在打印阵列时是否可以添加新行。 这是一个赋值问题,所以我不能直接打印它,也不能只打印布尔值——它必须是一个生成网格的方法。
我可以找到类似的问题,但我找不到我对这个特定案例期望的答案。 当我执行这段代码时,我得到一个编译错误,上面写着“缺少返回语句”。但是,据我所知,很明显,for循环中的代码将毫无疑问地执行,因为第一次,x=0。因此,对于这种特殊情况,没有理由不在for循环中执行代码。那么,为什么我们还需要在for循环之外声明一个额外的return语句呢?。
为了澄清所使用的输入是100,用于投资金额,利率为5%(在该程序中,取5/100,然后/12=0.00417),在这种情况下,投资的持续时间为6个月。因此,在任何利息累积之前的第0个月,没有利息,所以这只是投资的投入金额(100)。然后,在第一个月,它现在运行正常((100*i)*(i interest());或在或情况下((100*1)*(10.00417))=100.417 但当我到了第二个月
我试图在for循环中获得for循环,因此输出如下: 我希望输出显示一个正方形 我不知道它为什么不这样做。下面是我的代码: