我写了一个检查数字是否为素数的方法:
static boolean isPrime(int x) {
for (int i = 2; i <= Math.sqrt(x); i++) {
if (x % i == 0)
return false;
}
return true;
}
Run Code Online (Sandbox Code Playgroud)
在我们正在学习的一系列练习中,解决方案是:
static boolean isPrime(int x) {
boolean hasDivisors = false;
for (int i = 2; i <= Math.sqrt(x); i++) {
if (x % i == 0) {
hasDivisors = true;
break;
}
}
return !hasDivisors;
}
Run Code Online (Sandbox Code Playgroud)
在我的情况下,如果我找到一个除数,我返回该数字不是素数(return false),并取代了break第二种方法的需要.唯一明显的原因是第二种方法只使用一个return语句.
有这个原因(速度/记忆明智)?
这主要是风格问题.一些编码约定规定方法只有一个return语句.这在您必须明确释放资源的语言中很有意义,但在Java中没有任何功能影响.
就个人而言,我更喜欢只要return你知道结果(就像在第一个片段中),但同样,这是个人风格的问题.
| 归档时间: |
|
| 查看次数: |
82 次 |
| 最近记录: |