主要原因是这种设计让编译器的文法分析器会变得复杂。是先求1<a的值,用结果的布尔值即0或1再与10比较。所以理论上这个语句的if会一直为true。对编译器来说,这种写法是类似的,都是 “数值、比较运算符、变量、比较运算符、变量”五个部分构成。
主要原因是这种设计让编译器的文法分析器会变得复杂。是先求1<a的值,用结果的布尔值即0或1再与10比较。所以理论上这个语句的if会一直为true。
如果支持 1<a<10要不要支持下面三种类似的写法?
1>a>10
1<a>10
1>a<10
对编译器来说,这四种写法是类似的,都是 “数值、比较运算符、变量、比较运算符、变量”五个部分构成。然后,需要考虑如果有变态的程序员嵌套着用,比如,下面这个东西?a<c+d<=5<f==t=>m+n>=x+y>x-y
所以大部分语言决定,还是不要自找麻烦了吧
延伸阅读:
什么是编程语言?
计算机编程语言是程序设计的最重要的工具,它是指计算机能够接受和处理的、具有一定语法规则的语言。从计算机诞生,计算机语言经历了机器语言、汇编语言和高级语言几个阶段。
在所有的程序设计语言中,只有机器语言编制的源程序能够被计算机直接理解和执行,用其它程序设计语言编写的程序都必须利用语言处理程序“翻译”成计算机所能识别的机器语言程序。
文章标题:为什么编程语言不支持if(1 小编 • 2023年2月23日 上午1:42 • 科技 • 阅读 18,发布者:小编,转载请注明出处:https://worktile.com/kb/p/40632