Java实现kg转lb转换表程序仅显示公斤无磅数问题排查
公斤转磅Java程序修复方案
原代码问题清单
- 缺少
java.util.Scanner包导入,编译无法通过 - 存在多余输入逻辑:获取用户输入的起始值后,额外写了两句输入读取代码,会导致程序无理由等待用户额外输入两次
- 循环范围写死:固定从20循环到29,没有使用用户输入的起始值生成数据,不符合自定义起始值的需求
- 输出格式错误:
printf仅配置了1个占位符,传入了公斤、磅两个参数,导致磅数无法输出,也没有做列对齐处理 - 缺少资源释放和表格收尾逻辑:Scanner使用后未关闭,没有输出表格底部标识
修复后完整代码
import java.util.Scanner; public class kgToLbs1 { public static void main(String[] args) { final double LB_PER_KG = 2.2; // 初始化输入工具 Scanner input = new Scanner(System.in); // 提示用户输入起始值 System.out.println("Enter beginning value ===> "); int begVal = input.nextInt(); // 输出表头 System.out.println("-------------------------"); System.out.printf("%-15s|%s%n", "Kilograms", "Pounds"); System.out.println("-------------------------"); // 计算结束值,总共输出10条 int endValue = begVal + 9; // 循环生成转换数据 for (int i = begVal; i <= endValue; i++) { System.out.printf("%-15d|%.2f%n", i, (i * LB_PER_KG)); } // 输出表尾 System.out.println("-------------------------"); // 关闭输入流 input.close(); } }
修复后效果说明
- 程序启动后仅需要用户输入一次起始公斤值
- 自动生成从起始值开始连续10条转换数据,增量为1公斤
- 表格两列对齐,磅数保留2位小数,格式清晰
- 自动释放Scanner资源,避免资源泄漏
内容的提问来源于stack exchange,提问作者kkoll
相关产品推荐
相关产品推荐

