PDA

View Full Version : عملگر های منطقی && و || در C#‎



vistacali
سه شنبه 17 اسفند 1389, 08:03 صبح
سلام دوستان پند تا تایپک را راجع به سوالم خوندم و لی چیزی متوجه نشدم ممنون میشم تفاوت &&رابا & و || را با | بیان کنید ...البته به طور واضح بگید بهتره

چیزی که خوندم این بود
عملگرهاي||، | ،&&، &
در سی شارپ دو نوع عملگر ANDو OR وجود دارد. يكي OR منطقي كه با || نمايش داده مي‌شود و ديگري OR بیتی كه با | نشان داده مي‌شود. تفاوت بين اين دو نوع OR در آن است كه OR بیتی هردو عملگر خود را بررسي مي‌نمايد اما OR منطقي تنها در صورتيكه عملگر اول آن مقدار False داشته باشد به بررسي عملگر دوم خود مي‌پردازد. در مورد AND نيز همانند OR دو نوع عملگر وجود دارد. يكي AND معمولي (&) و ديگري AND شرطي (&&). تفاوت اين دو نيز در آن است كه AND معمولي (&) هميشه هردو عملوند خود را بررسي مي‌نمايد ولي AND شرطي (&&) تنها هنگامي به بررسيعملوند دوم خود مي‌پردازد كه مقدار اولين عملوندش برابر با True باشد. عملگرهايمنطقي (|| و (&& را در اصطلاح عملگرهاي ميانبر (short-circuit) مي‌نامندچراكه تنها در صورت لزوم عملوند دوم خود را بررسي مي‌نمايند و از اينرو سريعتر اجرامي‌شوند.

Reza_Yarahmadi
سه شنبه 17 اسفند 1389, 09:54 صبح
بطور خیلی خلاصه و کاربردی: عملگرهای && و || برای AND و OR شروط بکار میرن ، یعنی زمانی که بخواید درست بودن 2 شرط بصورت همزمان (درست بودن هر 2 شرط) رو بررسی کنید از && و یا وقتی که بخواید درست بودن یکی رو بررسی کنید از || استفاده میکنید.
عملگرهای & و | هم در واقع میشه گفت عملگرهای ریاضی هستند و توی محاسبات مورد استفاده قرار میگیره. به این صورت که وقتی بخواید 2 مقدار رو بصورت بیت به بیت با هم AND و یا OR کنید مورد استفاده قرار میگیرند.
به مثال زیر توجه کنید(فکر نمیکنم نیاز به توضیح داشته باشند)
0xff00 | 0x00ff = 0xffff = 65535
0xff00 & 0x00ff = 0x0000 = 0