php - 多个 if() 合而为一

标签 php javascript c++

<分区>

这个:

if (A || B) { X; }
if (C && D) { X; }
if (F != G && H + I === J) { X; }

可以替换为:

if ((A || B) || (C && D) || (F != G && H + I === J)) { X; }

但它是否可以被替换为:

if (A || B || C && D || F != G && H + I === J) { X; }

? (没有括号)

语言之间有什么区别吗?

P.S:答案不应基于这些示例。

最佳答案

一,如果这些有副作用,这都是无效的。

两个,只有 X 是幂等的,这是一种奇特的说法,如果 X 可以被调用两次而第二次没有变化。

http://en.cppreference.com/w/cpp/language/operator_precedence

&&|| 绑定(bind)得更紧密,所以是的,您可以在这种情况下将括号放在 && 周围。我认为运算符优先级规则对任何有它们的语言都有效,我不知道这有什么反例,而且您询问的语言确实遵循 C 运算符优先级规则。

关于php - 多个 if() 合而为一,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11876098/

相关文章:

c++ - 使用 qchecksum 而不是 boost crc16

c++ - 初始化静态变量时出现语法错误

c++ - 制造一种朝不断变化的方向发射的导弹

php - CodeIgniter 和抛出异常

php - 我应该使用 Amazon S3 还是 SimpleDB 来存储小文档?

php - 通过使用 MySQL 和 PHP 从下拉列表中选择特定选项来过滤记录

javascript - Quasar QTable 中的粘性标题

javascript - 如何使用 PHP/JQuery/JSONP 动态进行回调(Laravel 项目)

javascript - p5.j​​s 中的碰撞处理

javascript - 元素偏移量始终为 0