本帖最后由 qaws5052 于 2016-4-27 01:19 编辑
private static void demo01() {
//循环100以内的数
for (int n = 1; n <= 100; n++) {
//给b初始值true
boolean b = true;
//如果循环拿到的数n不等于1,就进入下面的循环
if (n != 1) {
//i从大于1的第一个数也就是2开始,依次循环到比这个数n本身小的最大的数
//何为质数,除了1和他本身不能再被其他数整除.所以...这样循环
for (int i = 2; i < n; i++) {
if (n % i == 0) { //如果取余为0,也就是说,除了1和其本身有其他数可以整数它,所以置为false
b = false;
//跳出当前循环,判断是否打印,并且到外面循环继续
break;
}
}
}
if (b) {
System.out.println(n + "是质数");
}
/*
* 这段代码有疑问:
for (int i = 2; i < n; i++){
if (n % i == 0){
b = false;
break;
}
既然当n % i == 0 的时候就是false,即退出了for loop,
那么一开始i = 2的时候n % i == 0 也是成立的,
那么b也就为false了,但为啥最后输出结果里面还有2呢?
* */
}
}
|
|