我在这里有这段代码,我很难弄清楚不是当i == 6时,当6%2 = 0和6%3 = 0和6%时,会在第二个循环中导致两个结果4 = 2。那么编译器如何确定6是否是质数
public static void main(String[] args) { for (int i = 2; i < 100 ; i++) { if (isPrime(i)) System.out.println(i); } }
private static boolean isPrime(int n) { for (int i = 2; i < n; i++){ if (n % i == 0) return false; } return true;
}
我假设您正在询问第二个循环如何知道6是否为质数。
在第二个循环中,如果n为6,则循环将运行一次,然后由于6%2 == 0而返回false。它不会检查6%3,6%4,因为已经调用了return语句。
基本上,如果满足条件n%i == 0,则将调用return语句,因此不再检查更多值。请记住,对于质数n%i == 0永远都不可能为真,因此检查其他任何值都没有意义。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。