0

我是 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;
    }

所以它进行了5次计算。这显然不是很难,但我不知道如何让它添加结果,所以我可以让它只显示结果。

4

4 回答 4

1

如果我理解正确,您想添加每次迭代的结果,在这种情况下,以下内容就足够了:

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);
于 2013-10-20T12:48:10.260 回答
0

不给你答案

创建一个double sumP并且每次p都被赋予一个值,添加psumP

确保sumP放置在循环之前。

循环后,打印sumP

于 2013-10-20T12:48:59.750 回答
0

由于表示错误,迭代浮点是危险的。你最好迭代一个 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);

我建议你避免使用ifor doubles,因为它通常用于循环。


编辑考虑

for (double d = 0; d <= 2; d += 0.1)
    System.out.println(d);

印刷

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

注意:没有 2.0 循环。

然而

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

印刷

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
于 2013-10-20T12:54:11.463 回答
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;
}

注意我是如何使用sum += p的。这是sum = sum + p的简写。你应该对x=x+i做同样的事情。您还应该将y = Math.pow(x, 2)更改为y = x*x。这比使用 Math.pow 更快。

在所有这些更改之后,最终代码将成为;

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;
}

边注:

你也可以做p += w * i,但在我看来,创建一个变量来保存总和要干净得多。

于 2013-10-20T12:56:43.097 回答