繁体   English   中英

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

[英]How do I apply a mathematical equation to each number in a for loop?

我已经进行了一些搜索并尝试了一些我找到的解决方案,但其中很多都导致了我遇到的同样问题。 我想对 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每个循环,while循环,将数字放入一个变量中以从中提取,我有点不知所措,不问自己要尝试什么。 我希望 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...

我将如何 go 经历 for 循环的每次迭代并将数学方程应用于它?

您没有发布完整的代码,但从您的 output 可以猜到您有这样的事情:

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 它计算面积并打印半径。 只有当循环结束时,它才会打印半径和面积 - 这正是您在 output 中看到的内容。

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

然后它将遍历相同的值,并为每个值执行计算并打印结果。

假设您使用的是 java 8,请利用它。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM