You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

修改说明

  1. 把fahrenheit的计算逻辑移到do-while循环内部,这样每次循环都会基于当前的celsius值重新计算,保证数值对应正确
  2. 删除了多余的单独打印语句,避免重复输出导致格式错乱
  3. 用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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 14:55:23