如何编写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();
核心改动说明:
- 字符比较修正:把
color==R改成color == 'R',R是字符字面量,必须用单引号包裹——不加引号编译器会把它当成未定义变量,直接报错。同理G和B要改成'G'、'B'。 - 无效输入处理:新增
else分支,当输入不是R/G/B时,输出提示信息。这里加Console.ResetColor()是为了确保提示用默认颜色显示,不会被之前设置的颜色覆盖。 - 体验优化:最后调用
Console.ResetColor(),恢复控制台默认的前景/背景色,避免用户后续操作控制台时颜色异常。
内容的提问来源于stack exchange,提问作者Kianmehr K.
相关产品推荐
相关产品推荐

