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

如何创建循环使代码完成计算后回到开头重新运行?

实现C#温度转换代码的循环执行

要让这段温度转换代码循环执行,你可以用C#的循环语句包裹核心逻辑,同时添加退出条件避免无限循环。下面是两种常用的实现方式:

方式一:无限循环+退出触发(while(true))

这种方式会持续运行直到用户主动退出,逻辑清晰,适合大多数场景:

while (true)
{
    Console.WriteLine("Enter Temp in Celsius (or type 'q' to quit)");
    string input = Console.ReadLine();
    
    // 输入q/Q时退出程序
    if (input.Equals("q", StringComparison.OrdinalIgnoreCase))
    {
        Console.WriteLine("Exiting program...");
        break;
    }
    
    // 尝试解析输入为温度数值
    if (double.TryParse(input, out double celsius))
    {
        // 绝对零度实际是-273.15℃,修正原代码的数值错误
        if (celsius <= -273.15)
        {
            Console.WriteLine("Temperature below absolute zero!");
        }
        else
        {
            double fahrenheit = (celsius * 1.8) + 32;
            // 格式化输出保留两位小数,结果更直观
            Console.WriteLine($"Your answer is {fahrenheit:F2}F");
        }
    }
    else
    {
        Console.WriteLine("Invalid input. Please enter a number or 'q' to quit.");
    }
}

关键优化点:

  • 把原代码的int改为double,支持小数温度输入,避免精度丢失和输入报错
  • 用double.TryParse替代直接转换,防止用户输入非数字导致程序崩溃
  • 添加退出逻辑,避免程序无限运行
  • 修正了绝对零度的数值错误(原代码写的-271.15是错误的)
  • 用字符串插值替代字符串拼接,代码更简洁易读

方式二:do-while循环(至少执行一次)

如果需要保证代码至少执行一次,再判断是否继续循环,可以用do-while:

string input;
do
{
    Console.WriteLine("Enter Temp in Celsius (or type 'q' to quit)");
    input = Console.ReadLine();
    
    if (!input.Equals("q", StringComparison.OrdinalIgnoreCase))
    {
        if (double.TryParse(input, out double celsius))
        {
            if (celsius <= -273.15)
            {
                Console.WriteLine("Temperature below absolute zero!");
            }
            else
            {
                double fahrenheit = (celsius * 1.8) + 32;
                Console.WriteLine($"Your answer is {fahrenheit:F2}F");
            }
        }
        else
        {
            Console.WriteLine("Invalid input. Please enter a number or 'q' to quit.");
        }
    }
} while (!input.Equals("q", StringComparison.OrdinalIgnoreCase));

Console.WriteLine("Exiting program...");

内容的提问来源于stack exchange,提问作者Muhammad Hisyamuddin Bin Hamza

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 13:50:20