C#判断整数是否在区间时报错:运算符<=无法应用于bool和int操作数
报错触发原因
C# 中比较运算符为左结合规则,你写的 2 <= N <= 5 会按如下顺序执行:
- 第一步优先计算左侧表达式
2 <= N,得到的是true或false的布尔类型结果 - 第二步会把第一步得到的布尔值,和右侧的整数5执行
<=比较,C# 语法不支持布尔值和整数直接做比较,因此直接抛出编译错误
另外补充:你的代码中定义的变量是小写n,判断条件里写的是大写N,C# 大小写敏感,即使区间判断写法修正后,这个变量名不一致的问题也会导致编译报错。
区间判断的正确写法
通用写法(兼容所有C#版本)
用逻辑与运算符&&连接两个独立的比较判断即可:
int n = 3; // 读取用户输入的逻辑可保留 if (n >= 2 && n <= 5) { Console.WriteLine("In range"); }
简化写法(仅支持C# 9及以上版本)
可以用模式匹配语法写得更简洁:
if (n is >= 2 and <= 5) { Console.WriteLine("In range"); }
内容的提问来源于stack exchange,提问作者SAKSHI JAIN
相关产品推荐
相关产品推荐

