开发者社区> 问答> 正文

2nd for循环的输出

我在这里有这段代码,我很难弄清楚不是当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;

}

展开
收起
小六码奴 2019-10-03 19:34:35 670 0
1 条回答
写回答
取消 提交回答
  • 我假设您正在询问第二个循环如何知道6是否为质数。

    在第二个循环中,如果n为6,则循环将运行一次,然后由于6%2 == 0而返回false。它不会检查6%3,6%4,因为已经调用了return语句。

    基本上,如果满足条件n%i == 0,则将调用return语句,因此不再检查更多值。请记住,对于质数n%i == 0永远都不可能为真,因此检查其他任何值都没有意义。

    2019-10-09 15:36:12
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载