为什么要创建逻辑运算符?



几乎所有编程语言都有逻辑运算符的概念 我有一个疑问,为什么创建逻辑运算符。 我用谷歌搜索并发现它是为基于条件的操作而创建的,但我认为这是一种用法。

我对没有这个运营商的人面临什么挑战的答案感兴趣。如果可能,请举例说明。

我对没有这个运算符的人面临什么挑战的答案感兴趣。

超详细深度嵌套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 <= 'z')相比,它很可怕,特别是如果有一个else,或者这是在另一个嵌套中。 特别是如果您的编码样式规则要求每个嵌套级别缩进 8 个空格,或者{在自己的行上使每个嵌套级别占用更多的垂直空间。


请注意,即使不考虑短路评估,a&b也不等同于a&&b。 (如果b为假,则甚至不评估a。 例如2 & 1是假的,因为它们的整数位模式没有设置任何相同的位。

短路评估允许像while(p && p->data != 0)这样的循环条件检查 NULL 指针,然后有条件地仅在非 NULL 上执行某些操作。

当计算机使用纸质电传打字机在慢速串行线路上编程时,紧凑的表达式是一件大事。


另请注意,这些纯粹是高级语言设计注意事项。 CPU 硬件没有逻辑运算符之类的东西;通常需要多个指令来实现对整数的!(转换为 0/1 整数,而不是用作 if 条件时(。

if (a && b)通常连续编译为两个测试/分支指令。

相关内容

  • 没有找到相关文章

最新更新