TG Telegram Group & Channel
آموزش برنامه نویسی جاوا | Java | United States America (US)
Create: Update:

📌 درک تفاوت بین عملگرهای بیتی و منطقی در شرط‌ها در زبان جاوا

در جاوا، گاهی دو عملگر شبیه به هم دیده می‌شوند اما رفتار متفاوتی دارند. یکی از این موارد، تفاوت بین عملگرهای & و && یا | و || است. دانستن این تفاوت، برای جلوگیری از بروز خطاهای منطقی و افزایش کارایی کد بسیار ضروری است.


🧩 عملگرهای بیتی & و |

عملگرهای & و | در حالت عادی روی بیت‌ها کار می‌کنند. برای مثال:


int a = 5;      // ۰۱۰۱
int b = 3;      // ۰۰۱۱
System.out.println(a & b); // خروجی: ۱ (۰۰۰۱)
System.out.println(a | b); // خروجی: ۷ (۰۱۱۱)


اما وقتی این عملگرها در عبارات شرطی بولی (boolean) استفاده شوند، هر دو طرف شرط را بدون توجه به نتیجه، اجرا می‌کنند.


boolean result = checkA() & checkB(); // هر دو تابع اجرا می‌شوند



⚙️ عملگرهای منطقی شرطی && و || (با ارزیابی کوتاه)

در مقابل، عملگرهای && و || فقط در عبارات شرطی استفاده می‌شوند و از ارزیابی کوتاه پشتیبانی می‌کنند:

* در && اگر بخش اول false باشد، بخش دوم اصلاً اجرا نمی‌شود.
* در || اگر بخش اول true باشد، بخش دوم اجرا نمی‌شود.


boolean result = checkA() && checkB(); // اگر checkA() false بدهد، checkB() اجرا نمی‌شود


🔐 این ویژگی به‌ویژه برای جلوگیری از خطا (مثلاً NullPointerException) مفید است:


if (user != null && user.isActive()) {
    // ایمن و مطمئن
}



🚨 مقایسه عملی:

فرض کنید توابعی دارید که در کنسول پیام چاپ می‌کنند:


public static boolean checkA() {
    System.out.println("A Checked");
    return false;
}

public static boolean checkB() {
    System.out.println("B Checked");
    return true;
}


اگر از checkA() & checkB() استفاده کنید، خروجی خواهد بود:

A Checked
B Checked


اما اگر از checkA() && checkB() استفاده کنید، خروجی فقط:

A Checked


خواهد بود.


🎯 جمع‌بندی:

* از && و || برای شرط‌ها استفاده کنید که به ارزیابی کوتاه نیاز دارند.
* از & و | برای عملیات روی بیت‌ها یا در شرایطی خاص که نیاز دارید هر دو طرف شرط همیشه اجرا شوند.
* دقت در انتخاب نوع عملگر شرطی، نقش مهمی در رفتار صحیح و کارآمد برنامه ایفا می‌کند.

#کاربر_مبتدی


🆔 @javapro_ir
🆔 @group_javapro

📌 درک تفاوت بین عملگرهای بیتی و منطقی در شرط‌ها در زبان جاوا

در جاوا، گاهی دو عملگر شبیه به هم دیده می‌شوند اما رفتار متفاوتی دارند. یکی از این موارد، تفاوت بین عملگرهای & و && یا | و || است. دانستن این تفاوت، برای جلوگیری از بروز خطاهای منطقی و افزایش کارایی کد بسیار ضروری است.


🧩 عملگرهای بیتی & و |

عملگرهای & و | در حالت عادی روی بیت‌ها کار می‌کنند. برای مثال:


int a = 5;      // ۰۱۰۱
int b = 3;      // ۰۰۱۱
System.out.println(a & b); // خروجی: ۱ (۰۰۰۱)
System.out.println(a | b); // خروجی: ۷ (۰۱۱۱)


اما وقتی این عملگرها در عبارات شرطی بولی (boolean) استفاده شوند، هر دو طرف شرط را بدون توجه به نتیجه، اجرا می‌کنند.


boolean result = checkA() & checkB(); // هر دو تابع اجرا می‌شوند



⚙️ عملگرهای منطقی شرطی && و || (با ارزیابی کوتاه)

در مقابل، عملگرهای && و || فقط در عبارات شرطی استفاده می‌شوند و از ارزیابی کوتاه پشتیبانی می‌کنند:

* در && اگر بخش اول false باشد، بخش دوم اصلاً اجرا نمی‌شود.
* در || اگر بخش اول true باشد، بخش دوم اجرا نمی‌شود.


boolean result = checkA() && checkB(); // اگر checkA() false بدهد، checkB() اجرا نمی‌شود


🔐 این ویژگی به‌ویژه برای جلوگیری از خطا (مثلاً NullPointerException) مفید است:


if (user != null && user.isActive()) {
    // ایمن و مطمئن
}



🚨 مقایسه عملی:

فرض کنید توابعی دارید که در کنسول پیام چاپ می‌کنند:


public static boolean checkA() {
    System.out.println("A Checked");
    return false;
}

public static boolean checkB() {
    System.out.println("B Checked");
    return true;
}


اگر از checkA() & checkB() استفاده کنید، خروجی خواهد بود:

A Checked
B Checked


اما اگر از checkA() && checkB() استفاده کنید، خروجی فقط:

A Checked


خواهد بود.


🎯 جمع‌بندی:

* از && و || برای شرط‌ها استفاده کنید که به ارزیابی کوتاه نیاز دارند.
* از & و | برای عملیات روی بیت‌ها یا در شرایطی خاص که نیاز دارید هر دو طرف شرط همیشه اجرا شوند.
* دقت در انتخاب نوع عملگر شرطی، نقش مهمی در رفتار صحیح و کارآمد برنامه ایفا می‌کند.

#کاربر_مبتدی


🆔 @javapro_ir
🆔 @group_javapro
👍133💯1


>>Click here to continue<<

آموزش برنامه نویسی جاوا | Java




Share with your best friend
VIEW MORE

United States America Popular Telegram Group (US)