Java 添加循环结果

Java 添加循环结果,java,loops,Java,Loops,我是Java新手,我有一个简单的问题要解决,但实际上我不知道如何完成它 我有一个像这样的循环: double i = 0.5 , y , w, p; for (double x = 0 ; x <= 2; x=x+i) { y = Math.pow(x, 2); w = 4 - y; p = w * i; } double i=0.5,y,w,p; 对于(double x=0;x如果我理解正确,您希望添加每个迭代的结果,在这种

我是Java新手,我有一个简单的问题要解决,但实际上我不知道如何完成它

我有一个像这样的循环:

    double i = 0.5 , y , w, p;
    for (double x = 0 ; x <= 2; x=x+i)
    {
     y = Math.pow(x, 2);
     w = 4 - y;
     p = w * i;
    }
double i=0.5,y,w,p;

对于(double x=0;x如果我理解正确,您希望添加每个迭代的结果,在这种情况下,以下内容就足够了:

double i = 0.5 , y , w, p = 0;
for (double x = 0 ; x <= 2; x=x+i)
{
    y = Math.pow(x, 2);
    w = 4 - y;
    p += w * i;
}
System.out.println(p);
双i=0.5,y,w,p=0;

对于(双倍x=0;x而不给你答案

创建一个
双池
,每次
p
被赋予一个值时,将
p
添加到

确保将
集水坑
放置在循环之前


循环后,由于表示错误,在浮点上进行打印迭代是危险的。最好在int值上进行迭代,因为您知道将得到多少次迭代

double f = 0.5, p = 0.0;
for(int j = 0; j <= 4; j++) {
   double x = j * f;
   p += f * (4 - x * x);
}

System.out.println(p);
印刷品

0.0
0.1
0.2
0.30000000000000004
0.4
0.5
0.6
0.7
0.7999999999999999
0.8999999999999999
0.9999999999999999
1.0999999999999999
1.2
1.3
1.4000000000000001
1.5000000000000002
1.6000000000000003
1.7000000000000004
1.8000000000000005
1.9000000000000006
0.0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1.0
1.1
1.2
1.3
1.4
1.5
1.6
1.7
1.8
1.9
2.0
注意:没有2.0循环

何处为

for (int i = 0; i <= 20; i++) {
    double d = i / 10.0;
    System.out.println(d);
}

您需要创建一个变量来保存总数

double sum;
double i = 0.5 , y , w, p;
for (double x = 0 ; x <= 2; x=x+i)
{
 y = Math.pow(x, 2);
 w = 4 - y;
 p = w * i;
 sum += p;
}
双和;
双i=0.5,y,w,p;

对于(double x=0;x)它进行了什么样的5次计算?您的
x=x+i
已经在添加
i
的值,所以我不知道问题出在哪里。旁注:
x=x+i
通常是编写的
x+=i
。而且
x*x
不仅比
Math.pow(x,2)短
但是要快得多。我想总结一下“p=w*I”的结果。我考虑过了。如果我把它放在循环中,结果是:2.0、1.875、1.5、0.875、0.0。但是你的方法不起作用。你应该在声明中用0值初始化
p
吗?@user2900052
它不起作用。
是最常见和最不起作用的方法之一StackOverflow上的格式化语句。告诉我们什么是有效的。如果您的错误是
变量p可能尚未初始化
请确保将
p
分配给
0
,正如@peeskillet所说(我也编辑了答案)。如果不是,则说明您的算法或您期望的结果有问题。它还必须在迭代0.1和0.01中工作。这就是为什么我的代码看起来是这样的。@user2900052它“工作”s因为最后一个表达式是0,所以不管是否对其求值。在另一个循环中,它都不起作用。初始化变量是一个好习惯,即使基元获得默认值。
double sum;
double i = 0.5 , y , w, p;
for (double x = 0 ; x <= 2; x=x+i)
{
 y = Math.pow(x, 2);
 w = 4 - y;
 p = w * i;
 sum += p;
}
double sum;
double i = 0.5 , y , w, p;
for (double x = 0 ; x <= 2; x += i)
{
 y = x * x;
 w = 4 - y;
 p = w * i;
 sum += p;
}