JAVA 分别用do-while和for循环计算1+1/1!+1/2!+1/3!+1/3!.......的前20项和

我的代码如下(elipse环境下编译),为什么错了?求大神~
class B
{
int i,item=1;
float prime(int n)
{
for(i=1;i<=n;i++)
item*=i;
return 1.0f/item;
}
}
public class 循环 {
public static void main(String args[])
{
B pr=new B();
int i,n=20;
float sum=0;
for(i=1;i<=n;i++)
sum+=pr.prime(i);
System.out.println(sum);
}

}
编译没错误信息,得到结果是:Infinity。不解

第1个回答  2012-10-19
把你代码拿去跑了一下,没有出错啊。结果:1.7182816

public static float prime(int n)
{
int i,item=1;
for(i=1;i<=n;i++)
{
item*=i;
}
return 1.0f/item;
}
public static void main(String[] args) throws Exception {
int i,n=20;
float sum=0;
for(i=1;i<=n;i++)
{
sum+=prime(i);
}
System.out.println(sum);
}追问

为什么你的又得出结果呢? throws Exception 是什么意思(是主类吗),我刚学习JAVA不是很懂,可我的代码它得出的结果又是:Infinity。不解啊!

追答

throw exception 是往外抛出异常啊,如果在代码再跑的过程终于到了什么异常的话直接抛出。
如果你不想抛出异常的话,可以用try-catch进行异常捕获并进行相关的处理就行了。

本回答被提问者和网友采纳
第2个回答  2012-10-18
把错误信息贴出来,难道还让人一行一行看你代码不成?
你这java代码写的,跟C一个样,连一个public private都没有,变量声明竟然都放在最前面= =!。类名竟然用中文,是想体现本土化?

先把错误信息贴出来吧!
第3个回答  2012-10-19
int item超范围了,,,
第4个回答  2012-10-18
循环二字不能直接写在代码里
第5个回答  2012-10-18
运行结果为 Infinity,无穷大追问

    可按理说也没超出int的范围啊,若用C来描述又正确,可在JAVA的为什么会是无穷大呢?若要改,怎么改呢