如何在Java for循环中为每个迭代数值应用数学公式?
问题分析与解决方案
你的核心问题是打印Radius和Area的代码不在循环体内部——虽然每次循环都计算了对应半径的面积,但只有最后一次循环的结果被循环外的打印语句输出了。
修正后的代码示例
把输出Radius和Area的逻辑放到for循环内部,这样每次迭代都会执行计算并输出对应结果:
for (int i = 3; i <= 5; i++) { double radius = i; // 建议局部变量声明在循环内,避免外部变量干扰 double area = Math.PI * radius * radius; System.out.println(radius); System.out.println("Radius: " + radius); System.out.println("Area: " + area); }
为什么之前的尝试没解决问题
不管换forEach还是while循环,你都没调整输出语句的位置——只要输出逻辑在循环外面,就只会拿到最后一次循环的变量值。把计算和输出都放进循环体,每一次迭代都会独立执行完整的计算+输出流程。
输出效果
运行修正后的代码,会得到你期望的输出:
3 Radius: 3.0 Area: 28.274333882308138 4 Radius: 4.0 Area: 50.26548245743669 5 Radius: 5.0 Area: 78.53981633974483
内容的提问来源于stack exchange,提问作者NobleRuckus
相关产品推荐
相关产品推荐

