عبارت ها در جاوا و انواع آنها

 

عبارات یا expression

ترکیبی از متغیر ها ثوابت و عملگر ها را عبارت گویند.

مثال:

 

2 + 3 * 5
3 + x – y / 7

 

عبارات ترکیبی

به عبارت هایی که عملوند های آن‌ها دارای data type های مختلفی هستند عبارات ترکیبی گویند.

مثال:

 

2 + 3.5
6/4 + 3.9
5.4 * 2 – 13.5

 

ارزیابی عبارات و تقدم عملگر ها

عبارات محاسباتی باید ارزیابی شوند تا مقدار آن‌ها مشخص گردد.

اگر در عبارتی چندین عملگر وجود داشته باشد ترتیب اجرای آن‌ها چگونه است ؟ برای پاسخ به این سؤال باید تقدم عملگر ها مشخص شود. جدول زیر نشان دهنده ی تقدم عملگر ها است.

 

تقدم عملگر ها در حالت کلی

توضیحات عملگر
پرانتز. هر عبارتی که در پرانتز قرار گیرد اول ارزیابی می شود ()
افزایش ، کاهش، نقیض ++ -- !
ضرب، تقسیم، باقیمانده تقسیم * / %
جمع، تفریق + -
کوچکتر بزرگتر، کوچکتر یا مساوی، بزرگتر یا مساوی <> >= <=
تساوی، نا مساوی == !=
"و" بیتی &
"یا" بیتی |
 "و" منطقی  &&
"یا" منطقی   ||
شرطی ?
انتساب و عملگر های ترکیبی += -= و ...

 

با مثالی تقدم عملگر ها روشن‌تر می‌شود

 

y = 4 * 2 / (3 + 1) + (6 + (7 – 2))

 

قبل از توضیح باید عملگر پرانتز را شرح دهیم.

 

عملگر پرانتز

عملگری است که تقدم عملگر های درون خودش را افزایش می دهد.


برای ارزیابی عبارت بالا ابتدا باید عبارت موجود در داخلی ترین پرانتز را ارزیابی کنیم.

ابتدا ۴ در ۲ ضرب می شود.

بعد از ۲ عملگر / وجود دارد که عملوندبعدی آن داخل پرانتز است لذا تقدم عملگر + در داخل پرانتز از عملگر / بیشتر است و مقدار داخل پرانتز حساب می‌شود در نتیجه ۳ با ۱ جمع می شود.

حال مقدار ۸ قبلی بر ۴ تقسیم می شود.

عملگر بعدی + هستش که عملوند بعدی داخل پرانتز قرار دارد. به داخلی ترین پرانتز می‌رویم و ۷ منهای ۲ می شود.و مقدار آن با ۶ جمع می شود. مقدار نهایی پرانتز ۱۱ می‌شود و با مقدار محاسبه شده قبلی که ۲ آمده بود جمع می‌شود و جواب نهایی عبارت برابر ۱۳ می‌شود و در y قرار میگیرد.


تبدیل انواع:

وقتی عملیاتی بر روی متغییر ها و ثوابت هم‌نوع انجام می‌گیرد نتیجه نیز از همان نوع خواهد بود.

برای مثال جواب تقسیم دو عدد صحیح یک عدد صحیح است.

وقتی دو مقدار اعشاری float از هم کم می‌شوند جواب یک عدد اعشاری float است.


اما گاهی در یک عبارت محاسباتی از ترکیبی از انواع مختلف استفاده می شود.تبدیل انواع را می‌توان به دو صورت بررسی کرد.

تبدیل انواع در عبارات محاسباتی و تبدیل انواع در دستورات انتساب.


برای تبدیل انواع در عبارات محاسباتیاز این قانون کلی پیروی می‌شود که انواع کوچکتر به انواع بزرگ‌تر تبدیل می شوند.


تبدیل انواع در دستورات انتساب زمانی رخ می‌دهد که دو نوع مختلف به یکدیگر نسبت داده شوند.

برای اینکه تبدیل نوع در دستورات انتساب صورت گیرد نوع مورد انتظار را ذکر می کنیم. به این‌گونه تبدیل type casting می گویند.

دستورات زیر را ببینید:

 

int x = 10;
float y, m = 3.14;
y = (float) x;
x = (int) m;

 

در دستور سوم کلمه float که قبل از x قرار گرفته موجب می‌شود مقدار x از نوع صحیح به نوع float تبدیل گردد و در y ذخیره شود.

در دستور چهارم کلمه int در داخل پرانتز که قبل از m قرار گرفته است موجب می‌شود که مقدار m از نوع float به نوع صحیح تبدیل شود و حاصل در x قرار گیرد.


بدیهی است که در تبدیل نوع در دستورات انتساب ممکن است بخشی از اطلاعات از بین برود. مثلاً در دستور چهارم مقدار m که یک متغیر حاوی مقدار اعشاری بود با عمل type casting به صحیح قسمت اعشاری از عدد ۳.۱۴ حذف می‌شود و مقدار صحیح ۳ در x قرار می گیرد.

 


نوع رشته ایی:

متغیر هایی که می‌توانند بیش از یک کاراکتر را در خود ذخیره کنند رشته یا string نامیده می شوند.

رشته دنباله ایی از صفر یا چند کاراکتر است. رشته در داخل نقل قول دوتایی (“) قرار می گیرد. مثل ‌”Ali” “Computer” .

برای پردازش رشته‌ها در جاوا کلاسی به نام String فراهم آمده است. این کلاس از نوع داده اولیه یا primitive data type نیست.

در ادامه به بررسی رشته‌ها خواهیم پرداخت.


رشته ایی که که فاقد هرگونه کارکتری است رشته تهی (null) یا خالی (empty) نام دارد.

 

"Computer Science"
"Matbou"
"" null string
"hello"

 

رشته‌ها دنباله ایی از صفر ها هستند. موقعیت کاراکتر اول ۰ و موقعیت کاراکتر دوم ۱ است و غیره.


عملگر + و رشته ها

یکی از متداولترین عملیاتی که روی رشته‌های انجام می‌شود عملیات الحاق (concatenation) است که رشته ایی را به انتهای رشته ی دیگر اضافه می کند.

 

"to" + "day" → today

"the sum = " + 12 + 26 → the sum = 1226

 

علت اینکه در مثال دو مقدار ۱۲ با ۲۶ جمع نمی‌شوند و به عنوان رشته به یکدیگر الحاق می‌شوند این است که در‌واقع اینجا نیز type casting صورت می‌گیرد

 

( ("the sum = " + 12 ) + 26 )

 

حالا اگر عبارت بالا را به صورت زیر تغییر دهیم

 

 "the sum = " + (12 + 26)

 

چون ۱۲ + ۲۶ در داخل پرانتز قرار دارند ابتدا جمع زده می‌شوند چون هم‌نوع هستند و حاصل جمع آن‌ها به رشته الحاق می‌شود و خروجی به صورت زیر می شود:

 

"the sum = 38"


ابتدا در پرانتز داخلی ۱۲ به انتهای رشته ”the sum = “ الحاق می‌شود و بعد ۲۶ به انتهای آن‌ها الحاق می شود. برای مثال یک type cast در رشته‌ها می‌تواند به صورت زیر باشد:

 

String str = "";
int x = 10;
str = x + "";

 

در دستور سوم شما یک عدد صحیح را به متغیر از نوع رشته نسبت دادید که عدد صحیح را با رشته ی تهی الحاق کردید که این نیز یک type casting است. 

 

می توانید انتشار قسمت ها جدید آموزش برنامه نویسی و به روز رسانی های جدید سایت را از کانال تلگرام ما دنبال کنید  و یا از قسمت انتهایی سایت ، آدرس it3du را در سایر شبکه های اجتماعی پیدا کنید

 

منبع: it3du