Performance “做”;Ors";计算整个表达式?

Performance “做”;Ors";计算整个表达式?,performance,optimization,logic,Performance,Optimization,Logic,假设我有以下语句逻辑(本例中我将使用VBA,但它也适用于其他语言) 编译器或执行程序是否发现第一个值为真,然后继续执行代码,还是结束语句的其余部分 我认为在vba中也可以使用OrElse “Or”(按位比较)始终完成语句的其余部分,“OrElse”(逻辑比较)在满足要求时停止。 在C++、C语言和java语言中,可以使用‘^’和‘```。 例如,如果对象为null或object.value=”“由于试图从空对象访问字段,当对象为空时,将导致null异常 使用OrElse时,如果对象为空,则求值O

假设我有以下语句逻辑(本例中我将使用VBA,但它也适用于其他语言)


编译器或执行程序是否发现第一个值为真,然后继续执行代码,还是结束语句的其余部分

我认为在vba中也可以使用OrElse

“Or”(按位比较)始终完成语句的其余部分,“OrElse”(逻辑比较)在满足要求时停止。 在C++、C语言和java语言中,可以使用‘^’和‘```。 例如,
如果对象为null或object.value=”“
由于试图从空对象访问字段,当对象为空时,将导致null异常


使用OrElse时,如果对象为空,则求值
OrElse object.value=”“
将在求值空对象时在第一次比较时停止。

我认为在vba中也可以使用OrElse

“Or”(按位比较)始终完成语句的其余部分,“OrElse”(逻辑比较)在满足要求时停止。 在C++、C语言和java语言中,可以使用‘^’和‘```。 例如,
如果对象为null或object.value=”“
由于试图从空对象访问字段,当对象为空时,将导致null异常


使用OrElse时,如果对象为空,则求值
OrElse object.value=”“
将在求值空对象时在第一次比较时停止。

我认为在vba中也可以使用OrElse

“Or”(按位比较)始终完成语句的其余部分,“OrElse”(逻辑比较)在满足要求时停止。 在C++、C语言和java语言中,可以使用‘^’和‘```。 例如,
如果对象为null或object.value=”“
由于试图从空对象访问字段,当对象为空时,将导致null异常


使用OrElse时,如果对象为空,则求值
OrElse object.value=”“
将在求值空对象时在第一次比较时停止。

我认为在vba中也可以使用OrElse

“Or”(按位比较)始终完成语句的其余部分,“OrElse”(逻辑比较)在满足要求时停止。 在C++、C语言和java语言中,可以使用‘^’和‘```。 例如,
如果对象为null或object.value=”“
由于试图从空对象访问字段,当对象为空时,将导致null异常


使用OrElse时,如果对象为空,则求值
OrElse object.value=”“
将在求值空对象时在第一次比较时停止。

我不能代表VBA,但我可以说它是特定于语言的。在某些语言中,程序员能够使用“短路”和或表达式。短路是指如果结果已经确定,则不再计算布尔表达式的过程

如果使用短路AND,如果发现FALSE,布尔运算将提前停止。如果使用短路OR,如果找到TRUE,布尔运算将提前停止

例如,在Java中:

a | | b
是短路或短路故障

a | b
是一个非短路或非短路电路

a&&b
是一个短路和

a&b
是一个非短路和


有些人可能会问,“为什么我会使用非短路AND或or?”当您调用一个返回布尔值的函数时,就会出现这种情况,您希望在任何情况下都运行该函数。例如,
a()| b()
将同时运行函数a和函数b
a()| | b()
仅在a返回false时运行函数b。

我不能代表VBA说话,但我可以说它是特定于语言的。在某些语言中,程序员能够使用“短路”和或表达式。短路是指如果结果已经确定,则不再计算布尔表达式的过程

如果使用短路AND,如果发现FALSE,布尔运算将提前停止。如果使用短路OR,如果找到TRUE,布尔运算将提前停止

例如,在Java中:

a | | b
是短路或短路故障

a | b
是一个非短路或非短路电路

a&&b
是一个短路和

a&b
是一个非短路和


有些人可能会问,“为什么我会使用非短路AND或or?”当您调用一个返回布尔值的函数时,就会出现这种情况,您希望在任何情况下都运行该函数。例如,
a()| b()
将同时运行函数a和函数b
a()| | b()
仅在a返回false时运行函数b。

我不能代表VBA说话,但我可以说它是特定于语言的。在某些语言中,程序员能够使用“短路”和或表达式。短路是指如果结果已经确定,则不再计算布尔表达式的过程

如果使用短路AND,如果发现FALSE,布尔运算将提前停止。如果使用短路OR,如果找到TRUE,布尔运算将提前停止

例如,在Java中:

a | | b
是短路或短路故障

a | b
是一个非短路或非短路电路

a&&b
是一个短路和

a&b
是一个非短路和


有些人可能会问,“为什么我会使用非短路AND或or?”当您调用一个返回布尔值的函数时,就会出现这种情况,您希望在任何情况下都运行该函数。例如,
a()| b()
将同时运行函数a和函数b
a()| | b()
仅在a返回false时运行函数b。

我不能代表VBA说话,但我可以说它是特定于语言的。在某些语言中,程序员能够使用“短路”和/或exp
x = 1
y = 2
z = 1000
If x = 1 Or y = 2 Or z = 4 Then
     Execute Code
End