C#代码报错Invalid Expression Term '<',求问题原因及规避方法
问题原因及解决办法
嘿,这个错误其实是C#里非常常见的语法小疏漏,我来给你理清楚:
错误根源
C#的逻辑运算符&&要求左右两侧都必须是完整的布尔表达式(也就是能返回true/false的语句)。你写的代码里:
hour > 0 && < 12
右边的< 12缺少了要比较的变量——编译器完全不知道你要拿什么和12做比较,自然会抛出「Invalid Expression Term '<'」的错误。同样的问题也出现在hour >= 12 && < 18这一行里。
修正后的代码
只需要在每个<前重复变量hour,让两边都成为完整的比较表达式就行:
int hour = 10; if (hour > 0 && hour < 12) Console.WriteLine("It's morning."); else if (hour >= 12 && hour < 18) Console.WriteLine("It's afternoon."); else Console.WriteLine("It's evening.");
未来避免这类问题的小技巧
- 写复合条件时,时刻提醒自己:逻辑运算符(
&&/||)的两边都得是独立可运行的布尔判断,不能像自然语言那样省略重复的主语(变量) - 对于复杂条件,可以拆成单独的布尔变量,可读性更高也不容易出错,比如:
bool isMorning = hour > 0 && hour < 12; bool isAfternoon = hour >= 12 && hour < 18; if (isMorning) { ... } - 写完代码后快速过一遍条件语句,检查每个比较运算符的左右两侧是不是都有明确的操作数
内容的提问来源于stack exchange,提问作者1988TheGoods
相关产品推荐
相关产品推荐

