一个函数
我想使用线程的概念解决这样一个问题,输出结果如下所示:
1~100的和是:5050
.
.
.
.
901~1000的和是:95050
1~1000的总和是:
这样一个形式,我写了这样一个程序,麻烦高手改正一下,有好多错误,谢谢!!
class SumThread extends Thread{
int from,to;
long sum;
SumThread(int from,int to){
this.from=from;
this.to=to;
}
long getSum(){
return Sum;
}
public void run(){
for(int i=from;i <=to;i++)
sum+=i;
}
}
public class Thread10{
public static void main(String [] args){
SumThread st1=new SumThread(1,100);
SumThread st2=new SumThread(101,200);
SumThread st3=new SumThread(201,300);
SumThread st4=new SumThread(301,400);
SumThread st5=new SumThread(401,500);
SumThread st6=new SumThread(501,600);
SumThread st7=new SumThread(601,700);
SumThread st8=new SumThread(701,800);
SumThread st9=new SumThread(801,900);
SumThread st10=new SumThread(901,1000);
}
st1.start();
st2.start();
st3.start();
st4.start();
st5.start();
st6.start();
st7.start();
st8.start();
st9.start();
st10.start();
try{
st1.join();
st2.join();
st3.join();
st4.join();
st5.join();
st6.join();
st7.join();
st8.join();
st9.join();
st10.join();
}catch(InterruptedException ie){ }
for(int i=1;i <=10;i++)
System.out.println(from+ "~ "+to+ "的和是: "+getSum());
long Sum=st1.getSum()+st2.getSum()+st3.getSum()+s4t.getSum()+st5.getSum()+st6.getSum()+st7.getSum()+st8.getSum()+st9.getSum()+st10.getSum();
System.out.println( "1~1000的总和是: "+Sum);
}
[解决办法]
○_○!!!
大小写先要注意下,然后
System.out.println(from+ "~ "+to+ "的和是: "+getSum());
这句完全...
[解决办法]
干嘛要一个一个地写线程,我看你那10个线程都很有规律呀。循环以下产生线程不是很好么?而且还容易看点
[解决办法]
class SumThread extends Thread{
int from,to;
long sum;
SumThread(int from,int to){
this.from=from;
this.to=to;
}
long getSum(){
return sum;
}
public void run(){
for(int i=from;i <=to;i++)
sum+=i;
}
}
public class temp{
public static void main(String [] args){
SumThread st1=new SumThread(1,100);
SumThread st2=new SumThread(101,200);
SumThread st3=new SumThread(201,300);
SumThread st4=new SumThread(301,400);
SumThread st5=new SumThread(401,500);
SumThread st6=new SumThread(501,600);
SumThread st7=new SumThread(601,700);
SumThread st8=new SumThread(701,800);
SumThread st9=new SumThread(801,900);
SumThread st10=new SumThread(901,1000);
st1.start();
st2.start();
st3.start();
st4.start();
st5.start();
st6.start();
st7.start();
st8.start();
st9.start();
st10.start();
try{
st1.join();
st2.join();
st3.join();
st4.join();
st5.join();
st6.join();
st7.join();
st8.join();
st9.join();
st10.join();
}catch(InterruptedException ie){ }
long sum;
System.out.println(st1.from+ "~ "+st1.to+ "的和是: "+st1.getSum());
System.out.println(st2.from+ "~ "+st2.to+ "的和是: "+st2.getSum());
System.out.println(st3.from+ "~ "+st3.to+ "的和是: "+st3.getSum());
System.out.println(st4.from+ "~ "+st4.to+ "的和是: "+st4.getSum());
System.out.println(st5.from+ "~ "+st5.to+ "的和是: "+st5.getSum());
System.out.println(st6.from+ "~ "+st6.to+ "的和是: "+st6.getSum());
System.out.println(st7.from+ "~ "+st7.to+ "的和是: "+st7.getSum());
System.out.println(st8.from+ "~ "+st8.to+ "的和是: "+st8.getSum());
System.out.println(st9.from+ "~ "+st9.to+ "的和是: "+st9.getSum());
System.out.println(st10.from+ "~ "+st10.to+ "的和是: "+st10.getSum());
sum=st1.getSum()+st2.getSum()+st3.getSum()+st4.getSum()+st5.getSum()+st6.getSum()+st7.getSum()+st8.getSum()+st9.getSum()+st10.getSum();
System.out.println( "1~1000的总和是: "+sum);
}
}
[解决办法]
SumThread类不用重写
Thread10类改成如下
public class Thread10{
public static void main(String [] args){
SumThread[] st=new SumThread[10];
long sum=0;
for(int i=0;i <10;i++){
st[i]=new SumThread(i*100+1,(i+1)*100);
st[i].start();
}
try{
for(int i=0;i <10;i++)
st[i].join();
}
catch(Exception e){
System.out.println(e);
}
for(int i=0;i <10;i++){
System.out.println(st[i].from+ "- "+st[i].to+ "的和为: "+st[i].getSum());
sum=sum+st[i].getSum();
}
System.out.println( "1~1000的总和是: "+sum);
}
}
[解决办法]
楼上几位说的都挺好,建议楼主从最基础的编码规则开始学习。比如类名 变量 的命名等等。不知道你的程序是自己写的还是什么地方拷的,反正如果我是面试官,肯定不要你,哈
[解决办法]
mark
[解决办法]
你的代码确实有不少问题,我建议你先把JAVA的基础知识先清楚,其实我的基础也不好,大家共勉吧,下面我给你改正以后的代码,我在我的机器上测试过了。
class SumThread extends Thread{
int from, to;
long sum;
SumThread(int from, int to) {
this.from = from;
this.to = to;
}
long getSum(){
return sum;
}
public void run(){
for(int i=from;i <=to;i++)
sum+=i;
}
public static void main(String [] args){
SumThread st1=new SumThread(1,100);
SumThread st2=new SumThread(101,200);
SumThread st3=new SumThread(201,300);
SumThread st4=new SumThread(301,400);
SumThread st5=new SumThread(401,500);
SumThread st6=new SumThread(501,600);
SumThread st7=new SumThread(601,700);
SumThread st8=new SumThread(701,800);
SumThread st9=new SumThread(801,900);
SumThread st10=new SumThread(901,1000);
st1.start();
st2.start();
st3.start();
st4.start();
st5.start();
st6.start();
st7.start();
st8.start();
st9.start();
st10.start();
try{
st1.join();
st2.join();
st3.join();
st4.join();
st5.join();
st6.join();
st7.join();
