质数判定算法通过嵌入循环结构控制执行路径,常见于for循环中根据isPrime(n)返回值决定是否执行累加、打印等操作,如打印2到50间的质数。

在 Java 中,质数判定算法本身不直接控制循环逻辑,但它常作为循环中的判断条件,影响循环的执行路径、终止时机或迭代行为。关键在于把质数判断嵌入到循环结构中,让程序根据“当前数是否为质数”来决定下一步操作。
用质数判断控制 for 循环的跳过与收集
常见场景是遍历一段整数区间,只对其中的质数执行特定操作(如累加、打印、存入集合)。
- 在 for 循环体内调用 isPrime(n) 方法,返回 true 时才执行业务逻辑
- 避免在循环外预先生成全部质数,节省内存;适合范围不大或只需单次扫描的情况
- 示例:打印 2 到 50 之间的所有质数
System.out.print(i + " ");
}
}
用质数判定驱动 while 循环寻找下一个质数
当目标不是遍历固定范围,而是“找到第 n 个质数”或“找到大于某值的最小质数”时,while 循环更自然。
在 Java 中初始化和管理阿里云 SDK客户端。包括单例模式、线程安全、endpoint 与 region 配置、VPC 终端节点、同步与异步等。
- 设置计数器 count 和候选数 candidate,每次递增 candidate,用 isPrime(candidate) 检查
- 满足条件才更新状态(如 count++),直到达成目标
- 注意初始值和边界:candidate 从 2 开始,count 初始为 0
while (count if (isPrime(candidate)) {
System.out.println("第 " + (count + 1) + " 个质数: " + candidate);
count++;
}
candidate++;
}
结合 break/continue 精确干预循环流程
质数判定结果可触发流程控制语句,使逻辑更紧凑。
立即学习“Java免费学习笔记(深入)”;
- 遇到非质数时用 continue 跳过后续处理(比如只对质数做耗时计算)
- 发现首个质数因子或满足某质数约束后,用 break 提前退出(如验证一个数是否为质数的试除法本身就是循环+break)
- 注意:break 用于终止当前层循环,嵌套时需配合标签使用(较少见)
优化提示:避免重复计算与过早终止
质数判定函数本身的效率会影响整体循环性能,尤其在内层频繁调用时。
- isPrime(int n) 应至少做到:n
- 不要在循环中反复判断同一个数(例如在双重循环里对同一 i 多次调用 isPrime(i)),可缓存结果
- 若循环中需大量质数判断,考虑预筛(如埃氏筛)生成布尔数组,用 O(1) 查询替代 O(√n) 判定

















