标题:找出这个程序的错误!
只看楼主
晨风lxj
Rank: 1
等 级:新手上路
帖 子:59
专家分:0
注 册:2007-9-13
 问题点数:0 回复次数:9 
找出这个程序的错误!

输出2到10000之间所有的素数,每行显示8个,我的程序如下,不知道错在那里,请指教!
class OutputPrime{
public static void main(String[] args){
int number=2;
int count=0;
while(number<=10000){
if(isPrime(number)){
count++;
if(count%8==0){
System.out.println();
System.out.print(number);
}
else
System.out.print(number);
}
number++;
}
}
public static boolean isPrime(int number){
for(int i=2;i<=number/2;i++)
if(number%i==0){
break;
return false;

}
return true;
}

}

搜索更多相关主题的帖子: public number count 
2007-09-22 14:38
nuciewth
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:我爱龙龙
等 级:贵宾
威 望:104
帖 子:9786
专家分:208
注 册:2006-5-23
得分:0 
以下是引用晨风lxj在2007-9-22 14:38:17的发言:

输出2到10000之间所有的素数,每行显示8个,我的程序如下,不知道错在那里,请指教!
class OutputPrime{
public static void main(String[] args){
int number=2;
int count=0;
while(number<=10000){
if(isPrime(number)){
count++;
if(count%8==0){
System.out.println();
System.out.print(number);
}
else
System.out.print(number);
}
number++;
}
}
public static boolean isPrime(int number){
for(int i=2;i<=number/2;i++)
if(number%i==0){
break;//这个不要啦
return false;

}
return true;
}

}


倚天照海花无数,流水高山心自知。
2007-09-22 14:49
晨风lxj
Rank: 1
等 级:新手上路
帖 子:59
专家分:0
注 册:2007-9-13
得分:0 

谢谢ls;
遇到return表示方法结束吗?

2007-09-22 23:10
nuciewth
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:我爱龙龙
等 级:贵宾
威 望:104
帖 子:9786
专家分:208
注 册:2006-5-23
得分:0 

遇到return 当然会结束函数了.


倚天照海花无数,流水高山心自知。
2007-09-22 23:11
晨风lxj
Rank: 1
等 级:新手上路
帖 子:59
专家分:0
注 册:2007-9-13
得分:0 

还是有点不明白,在if语句块中,用break退出循环,不执行下面的return false语句,而执行下面的return true;语句,实际输入从2到10000之间的数!
这是我的理解,请指出错误!

2007-09-22 23:42
晨风lxj
Rank: 1
等 级:新手上路
帖 子:59
专家分:0
注 册:2007-9-13
得分:0 
编译不能通过!
2007-09-22 23:44
nuciewth
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:我爱龙龙
等 级:贵宾
威 望:104
帖 子:9786
专家分:208
注 册:2006-5-23
得分:0 
public static boolean isPrime(int number){
for(int i=2;i<=number/2;i++)
if(number%i!=0){
return false;
}
return true;
}

这样才对.

倚天照海花无数,流水高山心自知。
2007-09-22 23:50
deadking606
Rank: 1
等 级:新手上路
帖 子:26
专家分:0
注 册:2007-9-17
得分:0 
呵呵,还是版主厉害.学习了
2007-09-23 10:09
nuciewth
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:我爱龙龙
等 级:贵宾
威 望:104
帖 子:9786
专家分:208
注 册:2006-5-23
得分:0 

我才刚学JAVA,只是目前的东西和C差不多.

倚天照海花无数,流水高山心自知。
2007-09-23 19:17
wangguan0411
Rank: 1
等 级:新手上路
帖 子:20
专家分:0
注 册:2007-9-17
得分:0 

package calendardemo;
public class ClassDemo {

public static void main(String[] args) {
test t=new test();
t.fors();
}
}
class test
{
int i,j,sum=0;
public void fors()
{
for(i=2;i<100;i++)
{
for(j=2;j<=Math.sqrt(i);j++)

if(i%j==0)
break;
if(j>Math.sqrt(i))
{sum++;
if(sum%8==0)
System.out.println();
else if(i<10)
System.out.print(" "+i+" ");
else if(i>=10 && i<100)
System.out.print(" "+i+" ");
else if(i>=100 && i<1000)
System.out.print(" "+i+" ");
else if(i>=1000 && i<10000)
System.out.print(" "+i+" ");

}
}
}
}

//这个应该也可以,比你少循环了N次,哈哈,

2007-09-27 22:51



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-172069-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.154454 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved