맞습니다. 단락 OR 연산자 (||)는 항상 단락이 아닌 OR 연산자 (|)와 동일한 값을 반환합니다. (*)
그러나 첫 번째 피연산자가 true이면 단락 연산자는 두 번째 피연산자를 평가하지 않지만 비 단락 연산자는 항상 두 피연산자를 모두 평가합니다. 이는 성능에 영향을 미칠 수 있으며 때로는 부작용에 영향을 줄 수 있습니다.
따라서 성능에 관심이 있고 두 번째 피연산자의 평가로 인해 부작용이 발생하지 않으면 (또는 관심이 없다면) 단락 연산자를 사용하십시오. . 그러나 어떤 이유로 두 번째 피연산자의 부작용 이 필요한 경우 비 단락 연산자를 사용해야합니다.
비 단락 연산자를 사용해야하는 예 :
if( write_customer_to_database() != SUCCESS |
write_supplier_to_database() != SUCCESS |
write_order_to_database() != SUCCESS )
{
transaction_rollback();
}
(*) 첫 번째 피연산자의 평가가 거짓으로 발생하는 두 번째 피연산자가 부작용이 아닌 참으로 평가되는 실제 왜곡 된 시나리오를 제외하고.