即使第一个条件为假,是否所有条件都在 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
语句的 属性,它只是采用您使用逻辑运算符产生的单个布尔表达式;该表达式同样可以分配给布尔变量,作为函数参数传递等。
如果我有:
bool foo = false; bool bar = true;
如果(foo && bar)
如果 if 语句检查 bar 是否为真或者它是否因为 foo 已经为假而跳过它?
你指的是short-circuit evaluation,会不会发生取决于:
- 您正在使用的编程语言
- 在某些情况下,实现(语言定义既不强制也不禁止)
- 在某些情况下,具体情况(语言明确允许但不保证,实现可能会根据具体情况选择是否短路)
- 您使用的确切运算符(某些语言提供两种写法 "and",一种 "eager" 和一种 "short-circuit"
请注意,它不是 if
语句的 属性,它只是采用您使用逻辑运算符产生的单个布尔表达式;该表达式同样可以分配给布尔变量,作为函数参数传递等。