即使第一个条件为假,是否所有条件都在 if 语句中检查?

Does all conditions get checked in an if statement even if the first one is false?

如果我有:

bool foo = false; bool bar = true;

如果(foo && bar)

如果 if 语句检查 bar 是否为真或者它是否因为 foo 已经为假而跳过它?

你指的是short-circuit evaluation,会不会发生取决于:

  • 您正在使用的编程语言
  • 在某些情况下,实现(语言定义既不强制也不禁止)
  • 在某些情况下,具体情况(语言明确允许但不保证,实现可能会根据具体情况选择是否短路)
  • 您使用的确切运算符(某些语言提供两种写法 "and",一种 "eager" 和一种 "short-circuit"

请注意,它不是 if 语句的 属性,它只是采用您使用逻辑运算符产生的单个布尔表达式;该表达式同样可以分配给布尔变量,作为函数参数传递等。