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

C# while循环嵌套switch计算THI的实现问题求解

修复方案

你现有代码存在3个核心逻辑错误,导致无法输出正确结果:

  • 循环增量规则不符合需求:温度初始值设为0、每次自增1,没有按要求从60°F起步、以10为步长递增;相对湿度的内层循环会将rh从0连续自增到101才退出,switch分支完全匹配不到40%、50%这类目标取值,且第一次循环后rh值固定为101,后续温度分支无法触发湿度计算。
  • 多层switch嵌套属于冗余逻辑:需求是遍历指定范围内所有温湿度组合计算THI,两层循环按步长遍历即可实现,不需要用switch逐值匹配变量。
  • 你编写的Thi计算公式逻辑正确,测试用例(温度60°F、相对湿度50%)返回值59.45符合预期,这部分无需调整。

符合实验要求的实现代码

以下代码完全使用while循环结构,覆盖所有要求的取值范围,步长设置为10,可直接运行:

using System;

namespace _1012Lab3
{
    class Program
    {
        static void Main(string[] args)
        {
            double temp = 60;
            double THI = 0;
            // 外层while遍历所有温度取值
            while (temp <= 100)
            {
                // 每个温度节点下,重置湿度初始值为40%
                double rh = 40;
                // 内层while遍历当前温度下所有湿度取值
                while (rh <= 100)
                {
                    THI = Thi(temp, rh);
                    Console.WriteLine($"温度:{temp}°F,相对湿度:{rh}%,THI指数:{THI:F2}");
                    // 湿度按步长10递增
                    rh += 10;
                }
                // 温度按步长10递增
                temp += 10;
            }
        }
        
        static double Thi(double temp1, double RH1)
        {
            double RH2 = RH1 / 100;
            double THI = temp1 - 0.55 * (1 - RH2) * (temp1 - 58);
            return THI;
        }
    }
}

实现说明

  • 严格遵循实验要求,仅使用while循环结构实现,无多余嵌套,可读性强
  • 温度取值范围:60/70/80/90/100°F,符合60-100°F、步长10的要求
  • 相对湿度取值范围:40/50/60/70/80/90/100%,符合40%-100%、步长10的要求
  • 运行后你提到的测试用例输出为温度:60°F,相对湿度:50%,THI指数:59.45,和预期计算结果完全一致。

内容的提问来源于stack exchange,提问作者JGray

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.03 06:31:27