Java中如何修正摄氏转华氏表格的重复初始变量与输出错位
问题分析与解决
原代码的问题很明确:
fahrenheit变量只在程序开头用初始的40.0计算了一次,循环过程中完全没更新,所以每次打印的都是固定的104.0- 循环里多写了一行单独打印华氏度计算结果的语句,导致每行输出两行内容,格式彻底混乱
修正后的代码
public static void main(String[] args) { double celsius = 40.0; System.out.println("Celsius\t\tFahrenheit"); do { // 每次循环根据当前摄氏度重新计算对应华氏度 double fahrenheit = (9.0/5.0 * celsius) + 32; // 一行输出一组摄氏度和华氏度 System.out.printf("%.1f\t\t%.1f%n", celsius, fahrenheit); --celsius; } while (celsius >= 31); }
修改说明
- 把
fahrenheit的计算逻辑移到do-while循环内部,这样每次循环都会基于当前的celsius值重新计算,保证数值对应正确 - 删除了多余的单独打印语句,避免重复输出导致格式错乱
- 用
System.out.printf做格式化输出,通过%.1f控制保留一位小数,同时让表格列对齐更整齐
运行修正后的代码,就能得到你预期的输出:
Celsius Fahrenheit
40.0 104.0
39.0 102.2
...
32.0 89.6
31.0 87.8
内容的提问来源于stack exchange,提问作者Sherry Faith
相关产品推荐
相关产品推荐

