دوره‌ها / JAVA / بولی/منطقی (Java Booleans)

بولی/منطقی (Java Booleans)

15 دقیقه Article پیش‌نمایش

بولی/منطقی (Booleans): دنیای سیاه و سفید جاوا ⚖️💡

در برنامه‌نویسی، خیلی وقت‌ها نیاز داریم بدانیم که آیا یک عبارت "درست" است یا "غلط". برای این کار از نوع داده boolean استفاده می‌کنیم که فقط دو مقدار می‌گیرد: true یا false.

۱. تعریف متغیر بولی

{code_block('boolean isJavaFun = true;\nboolean isFishTasty = false;\nSystem.out.println(isJavaFun); // خروجی: true')}

۲. عبارات بولی (Boolean Expressions) ⚖️

عبارت بولی عبارتی است که در نهایت یک مقدار منطقی تولید می‌کند. معمولاً با استفاده از عملگرهای مقایسه‌ای (که در فصل قبل خواندیم) ساخته می‌شوند:

{code_block('int x = 10;\nint y = 9;\nSystem.out.println(x > y); // برمی‌گرداند true چون 10 بزرگتر از 9 است')}

مقایسه برابری:

{code_block('int myAge = 25;\nint votingAge = 18;\nSystem.out.println(myAge >= votingAge); // خروجی: true')}
کاربرد اصلی: بولی‌ها پایه و اساس تمام شرط‌ها (Ifs) و حلقه‌ها (Loops) هستند که در درس‌های بعدی خواهیم دید.

۳. عملگرهای منطقی ترکیبی

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

  • && (AND): اگر هر دو طرفِ آن true باشند، نتیجه نهایی true است.
  • || (OR): اگر حداقل یکی از طرفین true باشد، نتیجه true است.
  • ! (NOT): مقدار را برعکس می‌کند (true -> false).
نکته حرفه‌ای: جاوا از Short-circuiting استفاده می‌کند. یعنی در عملگر && اگر سمت چپ غلط باشد، اصلاً سمت راست را چک نمی‌کند چون نتیجه در هر صورت غلط خواهد بود. این ویژگی باعث بهینه‌سازی سرعت می‌شود.
<hr style="margin: 50px 0; border: 0; border-top: 1px dashed rgba(255,255,255,0.1);">

بخش تخصصی: کنترل جریان در پروژه‌های صنعتی 🛠️💎

در این بخش، به نکاتی می‌پردازیم که تفاوت یک کدآموز و یک مهندس نرم‌افزار حرفه‌ای را مشخص می‌کنند.

۱. پیچیدگی زمانی (Time Complexity) در حلقه‌ها

هر بار که حلقه‌ای می‌نویسید، باید به تعداد تکرارهای آن فکر کنید. در جاوا، حلقه‌های تودرتو (Nested Loops) می‌توانند به سرعت باعث کُند شدن برنامه شوند (مرتبه O(n²)). همیشه سعی کنید با استفاده از الگوریتم‌های بهتر یا ساختارهایی مثل HashMap، نیاز به حلقه‌های تودرتو را به حداقل برسانید.

۲. بهینه‌سازی شرط‌ها (Early Return)

یکی از اصولی‌ترین روش‌ها برای نوشتن کدهای تمیز، استفاده از Early Return است. به جای نوشتن شرط‌های تو در تو (Nested Ifs)، ابتدا حالت‌های خطا را چک کرده و از متد خارج شوید. این کار باعث می‌شود کد شما "تخت" (Flat) و خواناتر شود.

۳. امنیت و اعتبار‌سنجی (Validation)

کنترل جریان فقط برای منطق برنامه نیست؛ بلکه برای امنیت هم حیاتی است. همیشه ورودی‌های کاربر را قبل از پردازش با استفاده از شرط‌ها اعتبار‌سنجی کنید تا از بروز مشکلاتی مثل NullPointerException یا حملات تزریق کد جلوگیری شود.

نکته پایانی: ساختارهای کنترلی قلب تپنده منطق برنامه شما هستند. تسلط بر نحوه صحیح استفاده از آن‌ها، باعث می‌شود برنامه‌هایی بنویسید که نه تنها کار می‌کنند، بلکه در برابر خطاها مقاوم و با راندمان بالا هستند.

تمرین‌های عملی

برای تثبیت یادگیری این درس تمرین‌های زیر را حل کنید

شرط سن قانون Easy
سوال تمرین

یک متغیر بولی به نام canVote تعریف کنید که نتیجه مقایسه متغیر age (عدد 20) با عدد 18 (بزرگتر یا مساوی) باشد. سپس آن را چاپ کنید.

پاسخ تمرین
JAVA
public class Main {
  public static void main(String[] args) {
    int age = 20;
    boolean canVote = age >= 18;
    System.out.println(canVote);
  }
}

آماده رفتن به درس بعدی هستید؟

این درس را به پایان رساندید و می‌توانید به درس بعدی بروید.