Java代码计算长方体体积始终返回0.0,请求错误排查
问题排查:计算长方体体积代码输出始终为0.0
核心错误原因
你代码里main方法中声明的volume变量始终是初始值0.0,因为调用vol.VolumeCalc(length, width, height)时,没有将方法返回的计算结果赋值给这个变量。VolumeCalc方法内部的volume是局部变量,和main里的volume完全独立,不会自动同步。
修复代码
只需要修改调用方法的那一行,把返回值赋值给main里的volume变量:
package Pyramid; import java.util.Scanner; public class SquareVolume { public static void main(String[] args) { double length = 0; double width = 0; double height = 0; double volume = 0; Scanner input = new Scanner (System.in); SquareVolume vol = new SquareVolume(); System.out.println("ENTER LENGTH: "); length = input.nextDouble(); System.out.println("ENTER WIDTH: "); width = input.nextDouble(); System.out.println("ENTER HEIGHT: "); height = input.nextDouble(); // 修复:接收方法返回的计算结果 volume = vol.VolumeCalc(length, width, height); System.out.println("VOLUME: " + volume); } public double VolumeCalc (double length, double width, double height){ double volume = (length * (width * height)); return volume; } }
额外优化建议
- 遵循Java命名规范:方法名应该使用小驼峰命名,把
VolumeCalc改成volumeCalc - 修正类名语义:你实际计算的是长方体体积,类名
SquareVolume(正方体体积)不符合功能,建议改为CuboidVolume - 简化代码结构:体积计算不需要依赖类实例,可以把
volumeCalc改成static方法,这样不用创建SquareVolume实例,直接调用即可,优化后的代码如下:
package Pyramid; import java.util.Scanner; public class CuboidVolume { public static void main(String[] args) { double length = 0; double width = 0; double height = 0; double volume = 0; Scanner input = new Scanner (System.in); System.out.println("ENTER LENGTH: "); length = input.nextDouble(); System.out.println("ENTER WIDTH: "); width = input.nextDouble(); System.out.println("ENTER HEIGHT: "); height = input.nextDouble(); volume = CuboidVolume.volumeCalc(length, width, height); System.out.println("VOLUME: " + volume); } public static double volumeCalc(double length, double width, double height){ return length * width * height; } }
内容的提问来源于stack exchange,提问作者Michael.T
相关产品推荐
相关产品推荐

