کار با مقادیر بولین و عبارات
این درس از دوره جامع جاوا در سایت طهاکو به بررسی مفهوم دادههای Boolean، نحوه تعریف و استفاده از آنها در برنامهنویسی اختصاص دارد. مفاهیمی چون مقداردهی به متغیرهای Boolean، عملگرهای منطقی (مانند AND، OR و NOT)، و کاربرد آنها در ارزیابی شرایط و کنترل جریان برنامه بهطور تخصصی پوشش داده شده است. همچنین، تبدیل رشتهها به مقادیر Boolean و استفاده مؤثر از این دادهها در منطق کدنویسی توضیح داده میشود. این بخش، مبانی ضروری برای ساختارهای تصمیمگیری در برنامهنویسی جاوا را فراهم میکند.
در زبان برنامه نویسی جاوا نوع دادهای تعریف شده به نام بولین؛ و در این بخش میخواهم به طور کامل در مورد این نوع داده و کلاس کمکی آن و کاربرد آن جاهایی که استفاده میشود صحبت کنم.
مقدار یک متغیر از جنس نوع داده بولین میتواند true یا false باشد. توضیحات و عملکرد این نوعداده بولین را من در پروژه Booleans نشان شما میدهم. داخل متد main، دو تا متغیر اعلان میکنم، با کلمه کلیدی Boolean با حروف تماماً کوچک شروع میکنم.
که این نشان میدهد یک نوع داده اولیه است نه یک شیء.
نام این متغیر را میگذارم b1 و مقدار آنرا هم true تعیین میکنم.
بعد یک متغیر بولین دیگر تعریف میکنم، با نام b2 و مقدار false.
میخواهم پنجره پروژه خود را با کلیک روی این آیکن جمع کنم تا از این علایمی که گاهی ظاهر میشوند راحت شوم.
خب؛ حالا میخواهم در خطی جدید از محیط project window، این متغیرها را با دستور Sout در خروجی کنسول نمایش بدهم.
با استفاده از دستور system.out.println، اول یک رشته به عنوان برچسب آن مینویسم؛ مثلاً “The value of b1 is” و بعد متغیر b1 را به آن اضافه میکنم.
این خط از کد را تکرار میکنم، برای duplicate کردن یک خط از کد هم میتوانید آن خط را کپی پاست کنید و هم میتوانید از کلیدهای میانبر کنترل و d استفاده کنید.
خب؛ بعد از duplicate کردن، میآیم برچسب و مقدار آنرا تغییر میدهم، و بعد کلاس خود را اجرا میکنم و خروجیای که انتظار آنرا داشتم را میبینم. مقادیر متغیرهای اولیه b1 و b2، به مقادیر رشتهای معادل بولین آنها ترجمه میشوند.
بنابراین معادل مقدار بولین true میشود true، و معادل false هم میشود false.
همانطور که قبلاً هم اشاره کردم همه متغیرهای اولیه، میتوانند مقداردهی اولیه شوند.
بنابراین میتوانید متغیرها را اعلان کنید، ولی در همان زمان اعلان، مقداردهیشان نکنید، مثلاً یک متغیر بولین اگر در زمان اعلان مقداردهی نشود، همیشه در ابتدا و به طور پیشفرض false در نظر گرفته میشود.
البته اگر سعی کنم اینکار را داخل متد انجام بدهم، کار نمیکند و با ارر روبهرو میشوم. چونکه متغیرهای محلی باید مقداردهی اولیه شوند.
ولی میتوانید یک متغیر را خارج از متد و به عنوان عضوی از کلاس اعلان کنید. من کرسر خود را اینجا بعد از اعلان کلاس قرار میدهم، و با کلمه کلیدی static شروع میکنم و بعد نوع داده مورد نظر خود را اضافه میکنم، یعنی Boolean.
و نام این متغیر جدید خود را میگذارم bDef.
من این متغیر را اعلان کردم، ولی هیچ مقداری به آن ندادم.
درحال حاضر همانطور که میبینید این متغیر رنگش مات است، چونکه هنوز هیچ ارجاع یا استفادهای از این متغیر نشده.
ولی اگر بیایم پایین اینجا، در آخرین خط از کد خود، و کد مربوط به چاپ در خروجی را duplicate کنم، و برچسب آنرا به “The value of bdef is” تغییر دهم و مقدار آنرا هم بگذارم همان متغیر bDef، میبینیم که رنگ متغیر bDef در قسمت اعلان تغییر میکند.
حالا از کد خود اجرا میگیرم، میبینیم که خروجی false است. باز هم میگویم که چون ما در ابتدا این متغیر را مقداردهی نکردیم به طور پیشفرض مقدار آن false شده.
میتوانید با اضافه کردن علامت تعجب هر مقداری را معکوس کنید. علامت تعجب در جاوا یک عملگر نفی به حساب میآید. به عبارتی میتوانیم این عملگر را به عنوان عملگر not بشناسیم.
حالا در مثالها متوجه میشوید.
من یک متغیر دیگر با نام b3 از جنس بولین ایجاد میکنم، و مقدار آنرا میگذارم not b1 یعنی همان b1 با علامت تعجب.
خب؛ در واقع آمدم مقدار b1 را معکوس کردم. b1 در ابتدا مقدارش true است و من الان آنرا false کردم.
این خط کد مربوط به خروجی را کپی میکنم و آنرا اینجا پاست میکنم.
دیدیم با کنترل یا کامند و فشردن کلید D هم میتوانیم همینکار را انجام دهیم، تا مقدار این متغیر را هم در خروجی نمایش بدهم. مثل قبل دوباره برچسب آنرا تغییر میدهم به “The value of b3 is” و متغیر خروجی را هم میگذارم b3 و از کد ران میگیرم؛ و این هم نتیجه.
مقدار B1، true است و مقدار b3، false.
علاوه بر استفاده از کلمات کلیدی برای ایجاد مقادیر بولین، میتوانید مقادیر بولین را با استفاده از عبارتهای مقایسهای با همدیگر ایجاد کنید. یعنی بیایید با مقایسه دو مقدار با هم یک مقدار بولین ایجاد کنید.
من یک متغیر اینتیجر با نام i1 ایجاد میکنم و مقدار آنرا میگذارم صفر.
بعد یک متغیر بولین با نام b4 هم ایجاد میکنم و مقدار آنرا داخل یک جفت پرانتز تعریف میکنم.
عبارتی که میخواهم به آن بدهم به این شکل خواهد بود (i1 !=0);؛ دقت کنید بعد از i1 یک اسپیس هم قرار بدهید.
و عبارت خود را با یک semicolon به اتمام میرسانم.
عملگر علامت تعجب مساوی بیانگر همان not؛ equal، به معنی عملگر مخالف است.
پس یکبار دیگر از متغیر b4 هم در کنسول خروجی میگیرم.
و مثل قبل این خط کد مربوط به خروجی را کپی میکنم و آنرا اینجا پاست میکنم و برچسب آنرا تغییر میدهم به “The value of b4 is” و مقدار خروجی را هم میگذارم b4.
و کدم را اجرا میکنم و میبینیم که مقدار b4؛ false برگردانده شد.
چونکه i1 مقدارش صفر است و عبارت داخل پرانتز میگوید i1 مخالف صفر است و این عبارت با مقدار i1 مچ نیست؛ پس مقدار b4، false برگردانده میشود.
در نهایت، به شما نشان میدهم که میتوانید یک رشته را با مقدار true یا false بگیرید، و آنرا به یک متغیر بولین واقعی تبدیل و تجزیه و باصطلاح parse کنید.
من یک رشته با نام sBoolean ایجاد میکنم، و مقدار آنرا میگذارم رشته true.
بعد، یک متغیر بولین ایجاد میکنم و نام آنرا میگذارم parsed، و مقدارش را با استفاده از کلاسِ کمکیِ نوع داده بولین تعریف میکنم. نام این کلاس کمکی Boolean با B
بزرگ است.
من یک متد از این کلاس را با نام parsBoolean فراخونی میکنم، و متغیر sBoolean را به آن میدهم، و بعد نتیجه را در خروجی نمایش میدهم.
برچسب این خروجی را parsed میگذارم و بعد متغیر parsed را هم به خروجی اضافه میکنم، و این هم نتیجه.
توجه داشته باشید که وقتی متد parse Boolean را فراخوانی میکنید، باید مقداری را به عنوان آرگومان در پرانتز به آن بدهید که برای جاوا معتبر باشد. یعنی رشتههای true و false. چونکه این رشته قرار است به متغیر بولین تبدیل شود و متغیر بولین هم فقط دو مقدار میتواند داشته باشد یا true یا false. خب؛ با متغیرهای بولین هم تا حدودی آشنایی پیدا کردید. زمانی که بخواهید مقادیر بولین را نمایش بدهید، به شما پیشنهاد میکنم تا جایی که امکان دارد از نوع داده اولیه استفاده کنید. به علاوه میتوانید در بعضی شرایط از کلاس کمکی بولین استفاده کنید، البته در این حالت کمی حافظه بیشتری اشغال میشود. البته این هم بگویم، همانطور که خواهید دید، این کلاس متدهای بسیار مفیدی دارد که میتوانید برای مدیریت مقادیر بولین خود از آنها استفاده کنید.