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

如何修复C#中If语句的按键输入判断异常问题?

C#控制台按键输入判断问题解决方法

你的代码有两个关键问题导致输入E/A时会执行Else分支:

  1. Console.ReadKey()的返回值处理错误
    Console.ReadKey()返回的是ConsoleKeyInfo对象,直接转字符串得到的不是单个输入字符(比如输入E会得到类似"E, KeyE"的内容),自然和"E"/"A"匹配不上。正确做法是取该对象的KeyChar属性,这才是用户输入的实际字符。

  2. 条件判断结构错误
    你写了两个独立的if语句,当输入E时,第一个if会执行,但第二个if不满足,会直接进入它的else分支输出Error。应该把第二个if改成else if,让条件判断形成连贯的分支,只有前面的条件都不满足时才会执行最后的else。

修正后的代码如下:

// 获取用户输入的单个字符
var input = Console.ReadKey().KeyChar.ToString();

if (input == "E") {
    Console.WriteLine("English has been selected");
}
else if (input == "A")
{
    Console.WriteLine("تم اختيار اللغة العربية");
}
else {
    Console.WriteLine("Error!");
}

也可以直接用char类型判断,更简洁:

char input = Console.ReadKey().KeyChar;

if (input == 'E') {
    Console.WriteLine("English has been selected");
}
else if (input == 'A')
{
    Console.WriteLine("تم اختيار اللغة العربية");
}
else {
    Console.WriteLine("Error!");
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 00:05:13