质数:只能被1和本身除尽的数,2是最小的质数
代码如下:
因为最小的质数是从2开始的,所以在给 i 和 j 取值时,就从2开始,最大值 i 不得超过100(时求100以内的质数),当然此处可以自行修改。
当第4行的外层for循环开始执行时,i = 2,i 小于100,进入第5行第一个内层for循环,j = 2;判断条件 j 小于 i 不成立,第5行的内部for循环不执行,进入第11行的 if 判断,
!flag输出是: 不是flag,最初赋值flag = false,经过!flag后变为flag = true,则第11行的 if 语句成立,此时输出 i,在上面 i 是未经处理的,是开始外层for循环赋值i = 2,所以输出第一个质数 2,if 语句输出完成后,会执行第14行的语句,重新定义flag = false,再次返回第4行的for循环,外层for循环依次增加,从2增加至100,假设当外层循环 i = 4 时,第5行的for循环中判断语句j = 2;j < i成立,执行第6行的 if 语句,i 对 取余,即4 % 2 得到结果0,则i % j成立,给flag赋值为true,运行到break时,跳出if语句,并进入第11行的 if 语句,此时 !flag得到false的结果,所以不成立,即不会执行System.out.println(i)的语句,不会有输出,再次给flag赋值为false,整个外层for循环执行完毕,一次类推就可以得到100以内的质数的结果,具体输出就不再写了,复制代码,自己运行下就ok
还有一种更简单的方式,会运用continue的语法,以及Math.sqrt()的语法,这里就不再详细说明了,以下是相关代码,供参阅…