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