عبارت زیر را در نظر بگیرید:

int x = 5 + 3 * 8;

کامپایلر عملگرها را به چه ترتیبی پردازش میکند؟ هر عملگر یک سطح تقدم دارد و عملگرها از ترتیب تقدم بالاتر به پایین تر پردازش میشوند. ضرب، تقسیم و عمل باقیمانده دارای سطح تقدم یکسانی میباشند. به همین ترتیب، عملگرهای جمع و تفریق نیز دارای سطح تقدم یکسان میباشند. ولی سطح عملگرهای ضرب، تقسیم و باقیمانده بالاتر از جمع و تفریق است. پس ضرب، تقسیم و باقیمانده، قبل از جمع و تفریق اتفاق می افتند. پس جمله بالا بصورت زیر در خواهد آمد:

int x = 5 + 3 * 8;
= 5 + 24
= 29

دقت کنید که عملگرهای دارای تقدیم یکسان از چپ به راست انجام میشوند.
گاهی شما قصد دارید تاعملگری را مجبور کنید که قبل از دیگر عملگرها انجام شود. برای مثال، میخواهید جمع، قبل از ضرب انجام شود. در این حالت میتوانید عمل مورد نظر را درون پرانتز قرار دهید. بصورت زیر:

int x = (5+3) * 8;
= 8 * 8;
= 64

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

int x = (((5+3) – ۲) * ۶) + ۵;
= ((۸-۲) * ۶) + ۵
= (۶*۶) + ۵
= ۳۶ + ۵
= ۴۱

دقت کنید که چگونه عملگرهای ریاضی به یک مقدار عددی تبدیل میشوند. عبارتی که نهایتاً به یک عدد تبدیل شوند، عبارات عددی نامیده میشوند.

  • Share/Bookmark