求助,简单的计算问题
想把100到200间的质数输出,编译时却总出错,不知怎么改,希望大家帮忙,谢谢
public class ZhiShu{
/*用for语句写出一个计算质数的方法*/
private void Jisuan(i)
{
for(int i=100;i<200;i++)
{
for(int b=2;b<i/2;b++)
{
if(i%b!=0)
continue;
else break;
}
System.out.println(i);
}
}
public static void main(String[]args){
int n=0;
ZhiShu c=new ZhiShu();
System.out.println("100到200间的质数");
c.Jisuan(n);}
}
------解决方案--------------------public class Test {
public static void main(String[] args) {
int i = 101;
while (i <= 200) {
int sqrtI = (int) Math.sqrt(i);
boolean flg = true;
for (int j = 2; j <= sqrtI; j++) {
if (i % j == 0){
flg = false;
break;
}
}
if(flg)
System.out.println(i);
i = i + 2;
}
}
}
------解决方案--------------------public class ZhiShu{
/*用for语句写出一个计算质数的方法*/
private void Jisuan()
{
for(int i=100;i <200;i++)
{
int j=(int)Math.sqrt(i);
for(int b=2;b<=j;b++)
{
if(i%b!=0)
continue;
else break;
}
System.out.println(i);
}
}
public static void main(String[]args){
ZhiShu c=new ZhiShu();
System.out.println("100到200间的质数");
c.Jisuan();
}
}
------解决方案--------------------private void Jisuan(i)
这个方法的声明就不对
应该为 private void Jisuan(int j)
参数不能用i ,因为你方法体里面又重新定义了i。
private 不确定有没有问题,声明成public肯定没问题
最好弄个ide ,编译的错误一目了然
另java中不成文的规定 方法名第一个字母小写!!!
------解决方案--------------------Java code
public class ZhiShu{
/*用for语句写出一个计算质数的方法*/
private void Jisuan() {
boolean flag;
for(int i=100;i <200;i++) {
flag = true;
for(int b=2;b <i/2;b++) {
if(i % b == 0)
flag = false;
}
if (flag)
System.out.println(i);
}
}
public static void main(String[]args){
int n=0;
ZhiShu c=new ZhiShu();
System.out.println("100到200间的质数");
c.Jisuan();
}
}