۲۹ شهریور ۱۴۰۳

Techboy

اخبار و اطلاعات روز تکنولوژی

عبارات جاوا را با عملگرها ارزیابی کنید

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

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

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

آنچه در این آموزش جاوا خواهید آموخت

  • یک عبارت جاوا چیست؟
  • نحوه نوشتن عبارات ساده
  • نحوه نوشتن عبارات مرکب
  • درباره عملگرها و عملوندهای جاوا
  • همه نوع عملگرها در جاوا، با مثال
  • درباره اولویت و ارتباط عملگر
  • نحوه کار با تبدیل‌های اولیه

یک عبارت جاوا چیست؟

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

نحوه نوشتن عبارات ساده

یک عبارت ساده یک نام تحت اللفظی، متغیر یا فراخوانی روش است. هیچ اپراتور درگیر نیست. در اینجا چند نمونه از عبارات ساده آورده شده است:


۵۲                         // integer literal
age                        // variable name
System.out.println("ABC"); // method call
"Java"                     // string literal
۹۸.۶D                      // double precision floating-point literal
۸۹L                        // long integer literal

یک عبارت ساده دارای یک نوع است که یا یک نوع اولیه یا یک نوع مرجع است. در این مثال ها، ۵۲ یک عدد صحیح ۳۲ بیتی است (int). System.out.println("ABC"); باطل است (void) زیرا هیچ مقداری برمی گرداند. "جاوا" یک رشته است (رشته). ۹۸.۶D یک مقدار ممیز شناور ۶۴ بیتی با دقت دوگانه است (double). و ۸۹L یک عدد صحیح ۶۴ بیتی (long) است. ما نوع سن را نمی دانیم.

از jshell برای آزمایش استفاده کنید

با استفاده از jshell می‌توانید این و سایر عبارات ساده را به راحتی امتحان کنید. برای مثال، ۵۲ را در اعلان jshell> وارد کنید و چیزی شبیه خروجی زیر دریافت خواهید کرد:

$۱ ==> 52

نام یک متغیر خراش است که jshell برای ذخیره ۵۲ ایجاد می‌کند. (متغیرهای خراش زمانی ایجاد می شوند که حروف واقعی وارد شوند.) System.out.println($1) را اجرا کنید و ۵۲ را به عنوان خروجی خواهید دید.

می توانید jshell را با آرگومان خط فرمان -v (jshell -v) اجرا کنید تا بازخورد پرمخاطب ایجاد کنید. در این مورد، وارد کردن ۵۲ به پیام زیر منجر می شود و نشان می دهد که متغیر خراش دارای نوع int (عدد صحیح ۳۲ بیتی) است:< /p>

|  created scratch variable $1 : int

بعد، سن را وارد کنید. در این حالت، احتمالاً با پیغام خطایی مبنی بر پیدا نشدن نماد دریافت خواهید کرد. پوسته جاوا فرض می کند که age یک متغیر است، اما نوع آن را نمی داند. شما باید یک نوع را وارد کنید. برای مثال، ببینید اگر int age را وارد کنید چه اتفاقی می‌افتد.

نحوه نوشتن عبارات مرکب

یک عبارت مرکب شامل یک یا چند عبارت ساده است که از طریق یک عملگر در یک عبارت بزرگ‌تر ادغام شده‌اند، که دنباله‌ای از دستورالعمل‌ها است که به صورت نمادین در کد منبع نمایش داده می‌شوند. عملگر عبارت operand(s) خود را به مقدار دیگری تبدیل می کند. برای مثال، در ۶ * ۵، عملگر ضرب (*) عملوندهای ۶ و ۵ را به ۳۰ تبدیل می‌کند.

ECMAScript 2022 عناصر کلاس را برکت می دهد، سطح بالا در انتظار است

عبارات مرکب را می توان در عبارات بزرگتر ترکیب کرد. برای مثال، ۶ * ۵ + ۱۰ عبارت مرکب ۶ * ۵ و یک عبارت ترکیبی متشکل از محصول آنها، عملگر جمع + و شماره ۱۰. ترتیب ارزیابی (ابتدا ضرب و سپس اضافه کنید) توسط قاعده تقدم جاوا تعیین می شود که به زودی به آن خواهیم رسید.

عبارات مرکب نیز می توانند ساده باشند

۶ * ۵ یک عبارت ترکیبی است که از دو عبارت ساده ۶ و ۵ تشکیل شده است. اما ۶ * ۵ نیز یک عبارت ساده از دیدگاه + است. عملگر + فقط محصول خود را می‌بیند، ۳۰، که یک عبارت ساده است.

درباره عملگرها و عملوندهای جاوا

عملگرهای جاوا بر اساس تعداد عملوندهایشان طبقه بندی می شوند:

  • یک عملگر یکنواخت یک عملوند دارد، به عنوان مثال، منهای یکپارچه (به عنوان مثال، ).
  • یک عملگر باینری دارای دو عملوند است که مثال‌های آن ضرب و جمع است.
  • یک عملگر سه تایی دارای سه عملوند است. یک مثال عملگر شرطی (?:) است.

عملگرهای جاوا نیز بر اساس موقعیت طبقه بندی می شوند:

  • یک عملگر پیشوند یک عملگر یکپارچه است که قبل از عملوند آن قرار دارد (به عنوان مثال، ).
  • یک اپراتور postfix یک عملگر یکپارچه است که از عملوند خود پیروی می کند (به عنوان مثال، age++; — اضافه کردن ۱ به مقدار عددی age ).
  • یک عملگر infix یک عملگر باینری یا سه تایی بین عملوندهای اپراتور است (به عنوان مثال، age + 5).

یک مثال دیگر از jshell

در بخش‌های بعدی عملگرهای بیشتری را معرفی می‌کنم، جایی که نمونه‌هایی را در قالب برنامه‌ها ارائه می‌کنم. همچنین می توانید این عملگرها را با jshell امتحان کنید، مانند:

jshell> 6 + 2
$۱ ==> 8

jshell> 7 * $1
$۲ ==> 56

در این مورد، ابتدا عبارت ۶ + ۲ را وارد می‌کنیم که jshell آن را ارزیابی می‌کند و عدد ۸ حاصل را به متغیر خراش اختصاص می‌دهد. سپس، را در ۷ ضرب می‌کنیم، که ۵۶ عدد را در متغیر خراش ذخیره می‌کند. این مثال نشان می دهد که می توانید از متغیرهای scratch در عبارات جاوا استفاده کنید.

اپراتورهای اضافه بار

عملگر پلاس (+) نمونه‌ای از اپراتور سرباردار است، که عملگری است که یکی از چندین عملیات را بر اساس انواع عملوندهای خود انجام می‌دهد. عملگر پلاس زمانی که هر دو عملوند اعداد صحیح هستند جمع اعداد صحیح را انجام می دهد، زمانی که هر دو عملوند دارای مقادیر ممیز شناور هستند جمع ممیز شناور و زمانی که هر دو عملوند رشته ای هستند، الحاق رشته را انجام می دهد. عملگر منهای (-) نیز بارگذاری شده است و تفریق عدد صحیح یا ممیز شناور را انجام می دهد.

انواع اپراتور در جاوا

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

اپراتورهای افزودنی

عملگرهای افزودنی یک مقدار عددی را از طریق جمع و تفریق افزایش یا کاهش می دهند. عملگرهای افزودنی شامل جمع (+)، تفریق (-)، پس کاهش (--)، پس افزایش (++)، پیش کاهش (--)، و پیش افزایش (++). الحاق رشته (+) نیز به عنوان افزودنی در نظر گرفته می شود. در اینجا یک تعریف رسمی برای هر یک از این عملگرها وجود دارد:

  • افزودن: با توجه به operand1 + operand2، که در آن هر عملوند باید از نوع کاراکتر یا عددی باشد، اضافه کنید operand2 را به operand1 و جمع را برگردانید. مثال: ۴ + ۶.
  • تفریق: با توجه به operand1 - operand2، که در آن هر عملوند باید از نوع کاراکتر یا عددی باشد، تفریق operand2 از operand1 و تفاوت را برگردانید. مثال: ۴ - ۶.
  • Post-decrement: با توجه به متغیر--، که در آن متغیر باید از کاراکتر یا نوع عددی، ۱ را از مقدار متغیر کم کنید (نتیجه را در متغیر ذخیره کنید) و مقدار را برگردانید ارزش اصلی. مثال: x--;.
  • پست افزایش: با توجه به متغیر++، که در آن متغیر باید از نویسه یا نوع عددی، ۱ را به مقدار متغیر اضافه کنید (نتیجه را در متغیر ذخیره کنید) و مقدار را برگردانید ارزش اصلی. مثال: x++;.
  • پیش‌افزایش: با توجه به --متغیر، که در آن متغیر باید از کاراکتر یا نوع عددی، ۱ را از مقدار آن کم کنید، نتیجه را در متغیر ذخیره کنید و مقدار کاهش یافته جدید را برگردانید. مثال: --x;.
  • پیش افزایش: با توجه به ++متغیر، که در آن متغیر باید از کاراکتر یا نوع عددی، ۱ را به مقدار آن اضافه کنید، نتیجه را در متغیر ذخیره کنید و مقدار افزایش یافته جدید را برگردانید. مثال: ++x;.
  • الحاق رشته: با توجه به operand1 + operand2، که در آن حداقل یک عملوند از رشته است تایپ کنید، نمایش رشته operand2 را به نمایش رشته operand1 اضافه کنید و نتیجه را برگردانید. . مثال: "A" + "B".

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

تشخیص سرریز در کتابخانه کلاس استاندارد جاوا

کلاس Math کتابخانه کلاس استاندارد شامل روش‌هایی برای تشخیص سرریزها است. برای مثال، int addExact(int x, int y) مقادیر x و y را اضافه می‌کند، مجموع را برمی‌گرداند یا یک استثنا در سرریز می‌کند. .

نمونه برنامه: عملگرهای افزودنی

فهرست ۱ یک برنامه کاربردی کوچک برای بازی با عملگرهای افزودنی جاوا ارائه می دهد.

class AddOp
{
   public static void main(String[] args)
   {
      System.out.println(125 + 463);
      System.out.println(2.0 - 6.3);
      int age = 65;
      System.out.println(age);
      System.out.println(age--);
      System.out.println(age++);
      System.out.println(--age);
      System.out.println(++age);
      System.out.println("A" + "B");
   }
}

برای آشنایی با استفاده از ابزار javac JDK برای کامپایل کد منبع جاوا و ابزار java برای اجرای برنامه به ویژگی‌های زبان جاوا ابتدایی مراجعه کنید. کاربرد حاصل دستور زیر را برای کامپایل لیست ۱ اجرا کنید:

javac AddOp.java

با فرض کامپایل موفقیت آمیز، باید یک فایل AddOp.class را در دایرکتوری فعلی مشاهده کنید. برای اجرای آن دستور زیر را اجرا کنید:

java AddOp

AddOp با تولید خروجی زیر پاسخ می دهد:

۵۸۸
-۴.۳
۶۵
۶۵
۶۴
۶۴
۶۵
AB

مطالعه این خروجی بینشی در مورد عملگرهای پسافزایش، پس کاهش، پیش افزایش و پیش کاهش ارائه می دهد. برای postincrement/postdecrement، مقدار فعلی age قبل از عملیات افزایش/کاهش خروجی است. برای preincrement/predecrement، عملیات انجام می شود و نتیجه آن در age ذخیره می شود و سپس مقدار جدید age خروجی می شود.

تکرار با عملگرهای جاوا

عملگرهای افزودنی به ویژه در زمینه یک گزاره تکرار مفید هستند، جایی که از آنها برای پیشروی به تکرار بعدی استفاده می‌شود. برای اطلاعات بیشتر در مورد این موضوع به تصمیم گیری و تکرار با عبارات جاوا مراجعه کنید.

عملگر فهرست آرایه

عملگر فهرست آرایه ([]) با ارائه شاخص (موقعیت) عنصر به عنصر آرایه دسترسی پیدا می‌کند. این عملگر بعد از نام متغیر آرایه قرار می گیرد، مانند grades[0] (به اولین عنصر آرایه اختصاص داده شده به grades دسترسی داشته باشید؛ اولین عنصر در شاخص ۰ ذخیره می شود. ). در اینجا یک تعریف رسمی وجود دارد:

با توجه به متغیر[index]، که در آن index باید عدد صحیح باشد (int) تایپ کنید، یک مقدار را بخوانید یا یک مقدار را در عنصر ذخیره متغیر در مکان index< ذخیره کنید /code>. مثال: دما[۱]

مقدار ارسال شده به index یک عدد صحیح ۳۲ بیتی است که یا ۰ یا یک مقدار مثبت است که در محدوده یک کمتر از طول آرایه است که با اضافه کردن نشان داده می شود. .length به نام آرایه. برای مثال، grades.length تعداد عناصر موجود در آرایه اختصاص داده شده به grades را برمی‌گرداند.

متغیرها و آرایه های آرایه

grades یک آرایه نیست، بلکه متغیری است که حاوی ارجاع به ناحیه‌ای از حافظه است که آرایه را تشکیل می‌دهد. این برای همه آرایه های جاوا صادق است. با این حال، مرسوم است که به درجات یا هر متغیر آرایه ای به عنوان یک آرایه اشاره شود.

نمونه برنامه: عملگر فهرست آرایه

فهرست ۲ کد منبع را به یک برنامه کاربردی ارائه می دهد که به شما امکان می دهد با عملگر فهرست آرایه بازی کنید.

class ArrayIndexOp
{
   public static void main(String[] args)
   {
      int[] grades = { 89, 90, 68, 73, 79 };
      System.out.println(grades[1]);
      grades[1] = 91;
      System.out.println(grades[1]);
      int index = 4;
      System.out.println(grades[index]);
      System.out.println(grades['C' - 'A']);
//      System.out.println(grades[1D]);
   }
}

فهرست ۲ تا حدودی جالب تر از لیست ۱ است. پس از ایجاد یک آرایه پنج عنصری و یک بعدی از اعداد صحیح (از طریق یک مقداردهی اولیه آرایه) و اختصاص ارجاع آرایه به درجات، main() برای دسترسی به عناصر مختلف اقدام می کند. دو مورد مورد توجه ویژه هستند:

  • شاخص عملگر شاخص آرایه در نهایت باید یک عدد صحیح ۳۲ بیتی (۰ یا یک مقدار مثبت) باشد. می‌توانید نام یک متغیر عدد صحیح (مانند index) را که حاوی مقدار شاخص است، به‌عنوان شاخص تعیین کنید.
  • می توانید محاسبه ای را که شامل حروف نویسه است مشخص کنید. (بعداً در این آموزش، تبدیل‌های نوع را معرفی می‌کنم، و خواهید فهمید که چرا 'C' - 'A' یک عدد صحیح (۲) تولید می‌کند که به عنوان یک شاخص معتبر عمل می‌کند.)

مثال نهایی که ۱D را به عنوان یک نمایه به عملگر فهرست آرایه می‌فرستد، توضیح داده می‌شود زیرا کامپایل نمی‌شود. اگر خط را لغو نظر کنید و سعی کنید فهرست ۲ را کامپایل کنید، یک پیام خطا در مورد انواع ناسازگار دریافت خواهید کرد: "تبدیل احتمالی با ضرر از double به int.."

فهرست ۲ (javac ArrayIndexOp.java) را کامپایل کنید و برنامه را اجرا کنید (java ArrayIndexOp). شما باید خروجی زیر را مشاهده کنید:

۹۰
۹۱
۷۹
۶۸

عملگر شاخص آرایه و آرایه های چند بعدی

می توانید از این عملگر با آرایه های چند بعدی استفاده کنید. به عنوان مثال، با فرض یک آرایه دو بعدی costs، costs[0][1] به عنصر اختصاص داده شده به ردیف اول (از طریق [۰]) و ستون دوم (از طریق [۱]).

عملگرهای تخصیص

عملگر انتساب (=) مقدار یک عبارت را به یک متغیر (مثلاً i = 6;)، از جمله یک عنصر آرایه، اختصاص می‌دهد. (به عنوان مثال، x[0] = 15;). عبارت و متغیر باید تخصیص سازگار باشند، به این معنی که انواع آنها باید مطابقت داشته باشند. به عنوان مثال، شما نمی توانید یک رشته را به یک متغیر عدد صحیح اختصاص دهید. وقتی در مورد تبدیل نوع بحث می کنیم، بیشتر در این مورد توضیح خواهم داد.