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

C#中如何在循环重启前添加错误提示信息?

解决方案

你的问题出在错误提示的时机不对——原代码没有在输入不符合要求时触发提示,反而可能在正确输入时误显示。正确的做法是:在解析输入后,判断如果输入无效(解析失败或数值为负),再输出错误提示,之后重新进入循环请求输入。

修改后的完整代码如下:

using System;

public class Program
{
    public static void Main()
    {
        double length;
        bool isInteger = false;
        do
        {
            Console.WriteLine("Please Enter Length: ");
            isInteger = double.TryParse(Console.ReadLine(), out length);
            
            // 输入无效时显示错误提示
            if (!(isInteger && length >= 0))
            {
                Console.WriteLine("Please enter a non-zero or non-negative number");
            }
        }
        while (!(isInteger && length >= 0));
        Console.WriteLine();
        Console.WriteLine("You have input: " + length);
        Console.WriteLine();
        
        double width;
        bool isInteger2 = false;
        do
        {
            Console.WriteLine("Please Enter Width: ");
            isInteger2 = double.TryParse(Console.ReadLine(), out width);
            
            if (!(isInteger2 && width >= 0))
            {
                Console.WriteLine("Please enter a non-zero or non-negative number");
            }
        }
        while (!(isInteger2 && width >= 0));
        Console.WriteLine();
        Console.WriteLine("You have input: " + width);
        Console.WriteLine();
        
        double height;
        bool isInteger3 = false;
        do
        {
            Console.WriteLine("Please Enter Height: ");
            isInteger3 = double.TryParse(Console.ReadLine(), out height);
            
            if (!(isInteger3 && height >= 0))
            {
                Console.WriteLine("Please enter a non-zero or non-negative number");
            }
        }
        while (!(isInteger3 && height >= 0));
        Console.WriteLine();
        Console.WriteLine("You have input " + height);
        Console.WriteLine();
    }
}

关键修改点:

  • 把错误提示放在解析输入之后,通过if (!(isInteger && length >= 0))判断输入是否无效,只有无效时才显示提示
  • 移除了原代码中多余的嵌套大括号,让代码结构更清晰

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 08:23:55