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

如何编写C#控制台程序实现输入字母对应彩色输出及异常处理?

修正后的C#控制台程序实现

直接给你修正后的完整代码,再讲清楚关键改动点:

char color;

Console.WriteLine("Enter a letter (R/G/B): ");
color = char.Parse(Console.ReadLine());

// 修正字符比较的语法错误
if (color == 'R')
{
    Console.BackgroundColor = ConsoleColor.Red;
    Console.ForegroundColor = ConsoleColor.Black;
    Console.Clear();
    Console.WriteLine("It's Red!");
}
else if (color == 'G')
{
    Console.BackgroundColor = ConsoleColor.Green;
    Console.ForegroundColor = ConsoleColor.Black;
    Console.Clear();
    Console.WriteLine("It's Green!");
}
else if (color == 'B')
{
    Console.BackgroundColor = ConsoleColor.Blue;
    Console.ForegroundColor = ConsoleColor.White;
    Console.Clear();
    Console.WriteLine("It's Blue!");
}
// 新增非指定字母的处理逻辑
else
{
    // 恢复默认颜色,避免之前的颜色设置影响提示输出
    Console.ResetColor();
    Console.WriteLine($"输入的字母 '{color}' 无对应颜色,请输入R/G/B");
}

// 最后恢复控制台默认颜色,避免后续操作颜色异常
Console.ResetColor();
Console.ReadKey();

核心改动说明:

  1. 字符比较修正:把color==R改成color == 'R',R是字符字面量,必须用单引号包裹——不加引号编译器会把它当成未定义变量,直接报错。同理G和B要改成'G'、'B'。
  2. 无效输入处理:新增else分支,当输入不是R/G/B时,输出提示信息。这里加Console.ResetColor()是为了确保提示用默认颜色显示,不会被之前设置的颜色覆盖。
  3. 体验优化:最后调用Console.ResetColor(),恢复控制台默认的前景/背景色,避免用户后续操作控制台时颜色异常。

内容的提问来源于stack exchange,提问作者Kianmehr K.

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 13:40:54