C#使用switch case比较用户输入两个数值大小的问题排查
代码无输出的问题根因
- 你定义的静态属性
Max全程没有赋值,int类型的默认值为0,switch分支仅匹配1和2,没有命中任何分支,所有判断和输出逻辑都不会执行,自然没有结果输出。 - switch语句完全不适用于两个数值比较的场景,属于不必要的逻辑冗余,反而增加了出错概率。
- 原有输出逻辑缺少空格,即使逻辑执行成功也会出现
Xis Maximum的格式错误。
修复后的功能实现
class Program { static void Main(string[] args) { Console.WriteLine("请依次输入两个整数,每个整数单独占一行:"); int num1 = int.Parse(Console.ReadLine()); int num2 = int.Parse(Console.ReadLine()); if (num1 > num2) { Console.WriteLine($"{num1} 是更大的数值"); } else if (num2 > num1) { Console.WriteLine($"{num2} 是更大的数值"); } else { Console.WriteLine("两个输入的整数数值相等"); } } }
可选优化建议
如果需要避免用户输入非整数导致程序崩溃,可以将int.Parse替换为int.TryParse做输入合法性校验,提前拦截非法输入并给出提示。
内容的提问来源于stack exchange,提问作者Haime21
相关产品推荐
相关产品推荐

