Esto es correcto, el operador OR de cortocircuito (||) siempre devolverá el mismo valor que el operador OR sin cortocircuito (|). (*)
Sin embargo, si el primer operando es verdadero, el operador de cortocircuito no causará la evaluación del segundo operando, mientras que el operador sin cortocircuito siempre causará la evaluación de ambos operandos. Esto puede tener un impacto en el rendimiento y, a veces, en los efectos secundarios.
Por lo tanto, hay un uso para ambos: si le importa el rendimiento y la evaluación del segundo operando no produce ningún efecto secundario (o si no le importan), entonces utilice el operador de cortocircuito. . Pero si por alguna razón necesita los efectos secundarios del segundo operando, entonces debe usar el operador sin cortocircuito.
Un ejemplo en el que debe usar el operador sin cortocircuito:
if( write_customer_to_database() != SUCCESS |
write_supplier_to_database() != SUCCESS |
write_order_to_database() != SUCCESS )
{
transaction_rollback();
}
(*) Excepto en el caso de un escenario realmente pervertido en el que la evaluación del primer operando a falso causa por efecto secundario el segundo operando a evaluar como verdadero en lugar de falso.