Programming languages 为什么要创建逻辑运算符?
几乎所有的编程语言都有逻辑运算符的概念 我有一个疑问,为什么要创建逻辑运算符。我在谷歌上搜索发现它是为基于条件的操作而创建的,但我认为这是一种用法 我感兴趣的是,没有这个操作员,人们面临的挑战是什么。如果可能,请举例说明 我感兴趣的是,没有这个操作员,人们面临的挑战是什么 超级详细深入嵌套的Programming languages 为什么要创建逻辑运算符?,programming-languages,logical-operators,language-design,Programming Languages,Logical Operators,Language Design,几乎所有的编程语言都有逻辑运算符的概念 我有一个疑问,为什么要创建逻辑运算符。我在谷歌上搜索发现它是为基于条件的操作而创建的,但我认为这是一种用法 我感兴趣的是,没有这个操作员,人们面临的挑战是什么。如果可能,请举例说明 我感兴趣的是,没有这个操作员,人们面临的挑战是什么 超级详细深入嵌套的if()条件,尤其是循环条件 while (a && b) { a = something; b = something_else; } 在没有逻辑运算符的情况下写入成为:
if()
条件,尤其是循环条件
while (a && b) {
a = something;
b = something_else;
}
在没有逻辑运算符的情况下写入成为:
while (a) {
if (!b) break; // or if(b){} else break; if you want to avoid logical ! as well
a = something;
b = something_else;
}
当然,如果你不想要一个循环,你想写这个吗
if (c >= 'a') {
if (c <= 'z') {
stuff;
}
}
if(c>='a'){
如果(c='a'&&c),这有点含糊不清。你想知道它们为什么被创建,即使你发现了它们的用途是什么?汇编/cpu硬件没有逻辑运算符,所以不适用。这是一个高级语言设计问题。(我假设您讨论的是短路求值运算符,如C的a&b
,它将两边都视为布尔值,而不是按位和a&b
)你能解释一下这个问题的CPU架构方面是什么,以及为什么要添加这个标签吗?没有什么挑战需要面对。这些挑战只是为了方便。Alan Turing表明,在他的单个指令中不需要它们:copy,minus,branch on negative
。