int a = 200;
for (int i = 3; i <= 200; ++i) {
boolean b = true;
for (int j = 2; j <= i - 1; j++) {
if (i % j == 0) {
b = false;
}
}
if (b) {
System.out.println(i+"素数");
}
}是这样的
j< = 3-1 是不是应该执行 if了?
执行完if 回去 应该j++了啊。。
为什么执行了if(b)呢?越看越晕 ,求明白人 讲讲!
for (int i = 3; i <= 200; ++i) {
boolean b = true;
for (int j = 2; j <= i - 1; j++) {
if (i % j == 0) {
b = false;
}
}
if (b) {
System.out.println(i+"素数");
}
}是这样的
j< = 3-1 是不是应该执行 if了?
执行完if 回去 应该j++了啊。。
为什么执行了if(b)呢?越看越晕 ,求明白人 讲讲!
2<=3-1,第一次满足,指向if,执行完后,j++,然后判断,只是条件不满足,所以退出循环,执行循环后面的程序!
/* 楼主的意思是想找出200以内的所有素数? */
int a = 200; //这个a是摆设? /* start to check every number less than 200 */
for (int i = 3; i <= 200; ++i) {
boolean b = true;
/* for loop to check a number either is prime or composite */
for (int j = 2; j <= i - 1; j++) {
if (i % j == 0) b = false;
}
/* printout the prime number */
if (b) System.out.println(i+"素数");
}
给你加了点注释,还有楼主如果不明白循环,建议先把每个循环内的内容先确定,然后实例测试.问题2L也解释得很清楚了