Java显示编译成功,但是执行后什么都没有,是哪里错了么?求大神帮助

publicclassjava{publicstaticvoidmain(Stringargs[]){longx=1,n=20,i=1;floatsum=0;for(x=... public class java
{
public static void main(String args[])
{long x=1,n=20,i=1;
float sum=0;
for(x=1;x<=n;x++)
{
for(i=1;i<=x;i++)
{
x=x*i;
}
sum=sum+1/x;
}
System.out.println(sum);
}

}
展开
 我来答
健康生活小PP
2012-10-22 · TA获得超过930个赞
知道小有建树答主
回答量:1217
采纳率:33%
帮助的人:430万
展开全部
接近死循环了
当i=2 x=2时 内层会使x的值为4 然后条件就从i<=2变成了i<=4 再运行又变成了8 然后继续翻倍 一直到越界变成负值 然后内层循环条件变成i<=负值 这样内层就完蛋了 外层因为1/X的值太小接近于0因此会循环使sum=sum+0

public class java {
public static void main(String args[]) {
long x = 1, n = 20, i = 1;
float sum = 0;
for (x = 1; x <= n; x++) {
for (i = 1; i <= x; i++) {
x = x * i;
System.out.println("x:"+x);
}
sum = sum + 1 / x;
System.out.println("sum:"+sum);
}
System.out.println(sum);
}
}

这样添加两条输出会让你明白自己怎么挂掉的

另外看到有其他朋友发的回答 你们可以试试 内循环会发生数据越界不会死循环下去 反而是外部因为内部X值变动造成了类似死循环的效果

还有一个问题就是long类型的问题 当X取2及以上数值时1/x会为0

具体可修改为
public class java {
public static void main(String args[]) {
float x = 1, n = 20, i = 1,num=0,sum = 0;
for (x = 1; x <= n; x++) {
for (i = 1; i <= x; i++) {
num = x * i;
System.out.println("x:"+x);
}
sum = sum + 1 / num;
System.out.println("sum:"+sum);
}
System.out.println(sum);
}
}
历盆郁7
2012-10-22 · TA获得超过4277个赞
知道大有可为答主
回答量:1795
采纳率:100%
帮助的人:949万
展开全部
你第二个for循环的结束条件是i <= x
但是里面x的值会越来越大,就造成了死循环,
这个程序永远不会结束的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
般若兮若
2012-10-22 · TA获得超过2706个赞
知道小有建树答主
回答量:1246
采纳率:0%
帮助的人:938万
展开全部
你的内循环有问题.一开始进去的时候x=1,i=1.此时判断i<=x成立然后执行x=x*i.此时的x=1然后i++变成2之后i<=x不满足了.这时候第二次循环了x变成2.进入内循环的时候i=1,x=2.执行x=x*i之后x还是2,然后i++变成2了,此时判断i<=x还是满足的.进入循环x=x*i之后x变成了4.然后i++变成3.判断i<=x还是成立,因此x=x*i执行后x变为了3*4=12....也就是说从你的第2次循环开始,你的内循环就永远在循环不会停下了.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
yang7882
2012-10-22 · TA获得超过307个赞
知道小有建树答主
回答量:358
采纳率:100%
帮助的人:232万
展开全部
死循环
for(i=1;i<=x;i++)
{
x=x*i;
}

i永远小于x 所以他们会一直走下去,你会发现你的红色停止按钮一直亮着的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
a1074101132
2012-10-22
知道答主
回答量:29
采纳率:0%
帮助的人:6万
展开全部
第10句有问题,x是全局变量,x=x*i不停地更改x的值,导致i<=x这个条件恒成立,因此程序陷入死循环,cpu100%
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式