در اینجا همه چیزهایی که باید در مورد عملگرهای جاوا و انواع اپراتورها بدانید و نحوه استفاده از آنها برای نوشتن عبارات برنامه های جاوا آورده شده است.
- یک عبارت جاوا چیست؟
- نحوه نوشتن عبارات ساده
- نحوه نوشتن عبارات مرکب
- درباره عملگرها و عملوندهای جاوا
- انواع اپراتور در جاوا
- اولویت و ارتباط عملگر
- تبدیلهای نوع اولیه
در این آموزش، نحوه نوشتن عبارات برای برنامه های جاوا را یاد خواهید گرفت. در بسیاری از موارد، از عملگرها برای نوشتن عبارات جاوا خود استفاده میکنید، و انواع اپراتورهای زیادی وجود دارد که میتوانید نحوه استفاده از آن را بدانید. به طور خلاصه انواع عملگرهای جاوا شامل انواع افزودنی، بیتی، منطقی، شرطی، شیفت و برابری و عملوندهای آنها را معرفی می کنم. شما همچنین در مورد بارگذاری بیش از حد اپراتور و اولویت اپراتور یاد خواهید گرفت و نمایشی از تبدیل نوع اولیه را خواهید دید. من با یک برنامه کوچک جاوا نتیجه گیری می کنم که می توانید از آن برای تمرین تبدیل های نوع اولیه به تنهایی استفاده کنید.
آنچه در این آموزش جاوا خواهید آموخت
- یک عبارت جاوا چیست؟
- نحوه نوشتن عبارات ساده
- نحوه نوشتن عبارات مرکب
- درباره عملگرها و عملوندهای جاوا
- همه نوع عملگرها در جاوا، با مثال
- درباره اولویت و ارتباط عملگر
- نحوه کار با تبدیلهای اولیه
یک عبارت جاوا چیست؟
عبارات ترکیبی از حروف، فراخوانی روش، نام متغیرها و عملگرها هستند. برنامه های جاوا عبارات را ارزیابی می کنند. ارزیابی یک عبارت مقدار جدیدی تولید می کند که می تواند در یک متغیر ذخیره شود، برای تصمیم گیری استفاده شود و موارد دیگر.
نحوه نوشتن عبارات ساده
یک عبارت ساده یک نام تحت اللفظی، متغیر یا فراخوانی روش است. هیچ اپراتور درگیر نیست. در اینجا چند نمونه از عبارات ساده آورده شده است:
۵۲ // 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) خود را به مقدار دیگری تبدیل می کند. برای مثال، در ۶ * ۵
، عملگر ضرب (*
) عملوندهای ۶
و ۵
را به ۳۰ تبدیل میکند.
عبارات مرکب را می توان در عبارات بزرگتر ترکیب کرد. برای مثال، ۶ * ۵ + ۱۰
عبارت مرکب ۶ * ۵
و یک عبارت ترکیبی متشکل از محصول آنها، عملگر جمع +
و شماره ۱۰
. ترتیب ارزیابی (ابتدا ضرب و سپس اضافه کنید) توسط قاعده تقدم جاوا تعیین می شود که به زودی به آن خواهیم رسید.
عبارات مرکب نیز می توانند ساده باشند
۶ * ۵
یک عبارت ترکیبی است که از دو عبارت ساده ۶
و ۵
تشکیل شده است. اما ۶ * ۵
نیز یک عبارت ساده از دیدگاه +
است. عملگر +
فقط محصول خود را میبیند، ۳۰، که یک عبارت ساده است.
درباره عملگرها و عملوندهای جاوا
عملگرهای جاوا بر اساس تعداد عملوندهایشان طبقه بندی می شوند:
- یک عملگر یکنواخت یک عملوند دارد، به عنوان مثال، منهای یکپارچه (به عنوان مثال،
-۵
). - یک عملگر باینری دارای دو عملوند است که مثالهای آن ضرب و جمع است.
- یک عملگر سه تایی دارای سه عملوند است. یک مثال عملگر شرطی (
?:
) است.
عملگرهای جاوا نیز بر اساس موقعیت طبقه بندی می شوند:
- یک عملگر پیشوند یک عملگر یکپارچه است که قبل از عملوند آن قرار دارد (به عنوان مثال،
-۵
). - یک اپراتور 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;
). عبارت و متغیر باید تخصیص سازگار باشند، به این معنی که انواع آنها باید مطابقت داشته باشند. به عنوان مثال، شما نمی توانید یک رشته را به یک متغیر عدد صحیح اختصاص دهید. وقتی در مورد تبدیل نوع بحث می کنیم، بیشتر در این مورد توضیح خواهم داد.
پست های مرتبط
عبارات جاوا را با عملگرها ارزیابی کنید
عبارات جاوا را با عملگرها ارزیابی کنید
عبارات جاوا را با عملگرها ارزیابی کنید