求101~200 之间的质数及其个数
最近学java基础,学到循环这节,碰到了这题,感觉挺简单的,但实际编写时,发现自己眼高手低了。
下面是我刚开始编写的代码。
public class prime {
public static void main(String[] args) {
int sum = 0;
boolean t = true;
for (int i = 101; i < 200; i++) {
for (int j = 2; j < i / 2; j++) {
if (i % j == 0) {
t = false;
break;
}
**(1)**
}
if (t == true) {
System.out.println(i);
sum++;
}
}
System.out.println("101~200之间质数的个数为 :" + sum);
}
}
可能大部分人,一眼就看出了我的错误地方。(让大家见笑啦,==,菜鸟的我还要努力啊)
运行后,发现结果只输出了101这一个质数,我当时就很纳闷,其它的怎么就没显示呢,于是重新考虑了循环语句,突然发现了一个细节问题, 当循环到i=102时,由于102%2==0为真了,t=false,并退出了循环,而此后t一直为false,故永远不可能执行t==true为真时的语句
所以结果也自然只会输出101这个质数。
发现了这一错误 ,便在 (1)处加了 t=true; 这个语句,运行成功,但对我来说,让我高兴的不是成功得到这一个程序的结果,而是我学会了遇到问题,首先理清思绪,找到解决问题的方法!!!