এটি সঠিক, শর্ট সার্কিট OR অপারেটর (||) সর্বদা নন-শর্ট সার্কিট OR অপারেটর (|) এর সমান মান প্রদান করবে। (*)
যাইহোক, যদি প্রথম অপারেন্ডটি সত্য হয়, শর্ট সার্কিট অপারেটর দ্বিতীয় অপারেন্ডের মূল্যায়নের কারণ ঘটাবে না, যখন নন-শর্ট সার্কিট অপারেটর সর্বদা উভয় অপারেন্ডের মূল্যায়ন ঘটায়। এটি পারফরম্যান্সে এবং কখনও কখনও পার্শ্ব-প্রতিক্রিয়াতেও প্রভাব ফেলতে পারে।
সুতরাং, উভয়ের জন্য একটি ব্যবহার রয়েছে: আপনি যদি পারফরম্যান্সের প্রতি যত্নশীল হন, এবং দ্বিতীয় অপারেন্ডের মূল্যায়ন কোনও পার্শ্ব প্রতিক্রিয়া তৈরি করে না, (বা যদি আপনি তাদের যত্ন নেন না) তবে কোনও উপায়ে শর্ট সার্কিট অপারেটরটি ব্যবহার করুন । তবে যদি কোনও কারণে আপনার দ্বিতীয় অপারেন্ডের পার্শ্ব প্রতিক্রিয়াগুলির প্রয়োজন হয়, তবে আপনার নন-শর্ট সার্কিট অপারেটরটি ব্যবহার করা উচিত।
একটি উদাহরণ যেখানে আপনার নন-শর্ট সার্কিট অপারেটরটি ব্যবহার করা উচিত:
if( write_customer_to_database() != SUCCESS |
write_supplier_to_database() != SUCCESS |
write_order_to_database() != SUCCESS )
{
transaction_rollback();
}
(*) সত্যিকারের কিছু বিকৃত দৃশ্য ব্যতীত যেখানে প্রথম অপারেন্ডকে মিথ্যা কারণের দিকে তাকাতে পার্শ্ব-প্রতিক্রিয়া দ্বারা দ্বিতীয় অপারেন্ডকে মিথ্যা পরিবর্তে সত্যে মূল্যায়ন করতে হবে।