如何将数学方程式应用于for循环中的每个数字



我四处搜索并尝试了一些解决方案,但其中很多都会导致我遇到同样的问题。我想把一个数学方程式应用于for循环的每个数。我遇到的问题是,这个方程只出现在for循环的最后一个数字上。例如:

for (int i = 3; i <= 5; i++)
{
radius = i;
area = (Math.PI * (radius * radius));
System.out.println (radius)
}

我的代码比这要广泛得多,但这是我遇到问题的部分。它打印:

3
4
5
Radius: 5
Area: 78.53981633974483

我试着对每个循环使用,而循环,把数字放在一个变量中,从中提取,我有点不知所措,不需要问就可以自己尝试什么。我希望for循环看起来像:

3
Radius: 3
Area: //... the area with radius 3...
4
Radius: 4
Area: //... the area with radius 4...
5
Radius: 5
Area: //...area with radius 5...

我该如何进行for循环的每次迭代,并将数学方程应用于它?

您没有发布完整的代码,但从您的输出中可以猜测您有这样的东西:

int radius = 0;
double area = 0.0;
for (int i = 3; i <= 5; i++)
{
radius = i;
area = (Math.PI * (radius * radius));
System.out.println (radius)
}
System.out.println("Radius: " + radius);
System.out.println("Area: " + area);

这样,你的程序在i=3,4,5上循环;对于每个i,它计算面积并打印半径。只有当循环结束时,它才会打印半径和面积——这正是你在输出中看到的。

更改Federico评论的代码如下:

int radius = 0;
double area = 0.0;
for (int i = 3; i <= 5; i++)
{
radius = i;
area = (Math.PI * (radius * radius));
System.out.println("Radius: " + radius);
System.out.println("Area: " + area);
}

然后,它将在相同的值上循环,并为每个值执行计算并打印结果。

假设您使用的是java8,请充分利用它

IntStream
.range(3, 6)
.forEach(radius -> {
float area = (float) (Math.PI * (radius * radius));
System.out.println("Radius: " + radius);
System.out.println("Area: " + area);
});

最新更新