Bu doğrudur, kısa devre VEYA operatörü (||) daima kısa devre olmayan VEYA operatörü (|) ile aynı değeri döndürür. (*)
Ancak, ilk işlenen doğruysa, kısa devre operatörü ikinci işlenenin değerlendirilmesine neden olmazken, kısa devre olmayan operatör her zaman her iki işlenenin de değerlendirilmesine neden olur. Bunun performans üzerinde ve bazen yan etkilerde etkisi olabilir.
Bu nedenle, her ikisi için de bir kullanım vardır: performansa önem veriyorsanız ve ikinci işlenenin değerlendirilmesi herhangi bir yan etki üretmezse (veya bunlarla ilgilenmiyorsanız), elbette kısa devre operatörünü kullanın . Ancak, herhangi bir nedenle ikinci işlenenin yan etkilerine ihtiyacınız varsa, kısa devre dışı operatörü kullanmalısınız.
Kısa devre dışı operatörü kullanmanız gereken bir örnek:
if( write_customer_to_database() != SUCCESS |
write_supplier_to_database() != SUCCESS |
write_order_to_database() != SUCCESS )
{
transaction_rollback();
}
(*) İlk işlenenin yanlış nedenlerle yan etki ile değerlendirilmesinin ikinci işlenenin yanlış yerine doğru olarak değerlendirildiği gerçekten sapkın senaryolar dışında.