عبارت ساختاری است متشکل از متغیرها، عملگرها و فراخوانی متدها، که طبق نحو زبان جاوا ساخته شده و به یک مقدار واحد ارزیابی میشود. شما قبلاً نمونههایی از عبارات را دیدهاید:
cadence = 0; // عبارت انتساب
2 * 2; // عبارت حسابی
(2 == 4) ? 2 : 4; // عبارت سهعملوندی
"Hello" // عبارت رشتهای
نوع داده مقدار برگشتی عبارت به عناصر استفادهشده در آن بستگی دارد. عبارت cadence = 0 یک int برمیگرداند چون عملگر انتساب مقداری از همان نوع داده عملوند سمت چپ برمیگرداند. در این حالت، cadence یک int است. همانطور که از عبارات دیگر میبینید، عبارت میتواند انواع دیگر مقادیر را نیز برگرداند، مانند boolean یا String.
زبان جاوا اجازه میدهد عبارات مرکب از عبارات کوچکتر بسازید، به شرطی که نوع داده مورد نیاز یک بخش با نوع داده بخش دیگر مطابقت داشته باشد. در این مثال خاص، ترتیب ارزیابی عبارت اهمیتی ندارد زیرا نتیجه ضرب مستقل از ترتیب است؛ نتیجه همیشه یکسان است، صرفنظر از اینکه ضربها را به چه ترتیبی اعمال کنید. اما این در مورد همه عبارات صادق نیست. به عنوان مثال، عبارت زیر بسته به اینکه عملیات جمع یا تقسیم را اول انجام دهید، نتایج متفاوتی میدهد.
میتوانید بهطور دقیق مشخص کنید که عبارت چگونه ارزیابی شود با استفاده از پرانتزهای متوازن (( و )). به عنوان مثال، برای بیابهام کردن عبارت قبلی میتوانید بنویسید:
int result = ((2 + 3) * 4) / 5; // 4.0
اگر ترتیب اجرای عملیات را بهطور صریح مشخص نکنید، ترتیب توسط اولویت عملگرهای موجود در عبارت تعیین میشود. عملگرهایی با اولویت بالاتر زودتر ارزیابی میشوند. به عنوان مثال، عملگر تقسیم اولویت بالاتری نسبت به عملگر جمع دارد. بنابراین دو دستور زیر معادل هستند:
هنگام نوشتن عبارات مرکب، صریح و شفاف باشید و با پرانتز مشخص کنید کدام عملگرها باید اول ارزیابی شوند. این روش خواندن و نگهداری کد را آسانتر میکند.
حساب اعشاری شناور دنیای خاصی است که عملیات متداول ممکن است رفتار غیرمنتظره داشته باشند. کد زیر را در نظر بگیرید:
double x = 0.1;
double y = 0.2;
System.out.println(x + y); // 0.30000000000000004
System.out.println((x + y) == 0.3); // false!
احتمالاً انتظار دارید خروجی true باشد. به دلیل نحوه اجرای جمع اعشاری شناور و گرد کردن آن، خروجی false چاپ میشود.
نحوه پیادهسازی حساب اعشاری شناور در جاوا خارج از محدوده این آموزش است. اگر نیاز دارید بیشتر در این مورد یاد بگیرید، میتوانید ویدیوی زیر را تماشا کنید.
دستورات معادل تقریبی جملات در زبانهای طبیعی هستند. یک دستور واحد کامل اجرا را تشکیل میدهد. انواع عبارات زیر با سمیکالن (;) به دستور تبدیل میشوند:
++ یا --این دستورات دستورات عبارتی (Expression Statements) نامیده میشوند. در اینجا چند نمونه از دستورات عبارتی آورده شده است:
cadence = 0;
speedUp(5);
System.out.println("Hello");
علاوه بر دستورات عبارتی، دو نوع دستور دیگر نیز وجود دارد: دستورات اعلانی و دستورات کنترل جریان. دستور اعلانی متغیری را اعلام میکند. شما تاکنون نمونههای زیادی از دستورات اعلانی دیدهاید:
int count = 0;
و دستورات کنترل جریان ترتیب اجرای دستورات را تنظیم میکنند. در بخش بعدی، کنترل جریان، درباره دستورات کنترل جریان خواهید آموخت.
بلوک گروهی از صفر یا چند دستور بین آکولادهای متوازن است و در هرجا که یک دستور مجاز است قابل استفاده است. مثال زیر، BlockDemo، استفاده از بلوکها را نشان میدهد:
class BlockDemo {
public static void main(String[] args) {
boolean condition = true;
if (condition) {
System.out.println("This is true!");
System.out.println("Executing this anyway");
} else {
System.out.println("This is false!");
System.out.println("Executing this as well");
}
}
}این محتوا کاملا رایگان توسط تیم کدلپر ترجمه شده و در اختیار شما کاربران عزیز قرار گرفته است، هر گونه کپی برداری برای مقاصد غیر رایگان و بدون ذکر منبع، مورد پیگیری قانونی قرار میگیرد.
ترجمه شده از منبع: https://dev.java/learn/