انجام casting برای انواع داده های ناسازگار
گفتیم که برای نوع هایی که با هم سازگار نیستند نمی توانیم از تبدیلات خودکار(با وجود مفید بودنشان) استفاده کنیم. مثلا اگر بخواهیم یک مقدارint را به مقدارbyte تخصیص بدهیم؛ این تبدیل به طور خودکار انجام نمی شود زیرا byte از int کوچکتر است . این نوع تبدیل گاهی “تبدیل همراه با کوچک سازی” نامیده می شود ؛چرا که مقدار int به طور صریح کوچکتر می شود تا در مقصد قابل ذخیره باشد. برای آنکه تبدیل دو نوع ناسازگار را انجام دهید باید ازcasting استفاده کنید ؛ یعنی نبدیل صریح انواع داده ها
گفتیم که برای نوع هایی که با هم سازگار نیستند نمی توانیم از تبدیلات خودکار(با وجود مفید بودنشان) استفاده کنیم. مثلا اگر بخواهیم یک مقدارint را به مقدارbyte تخصیص بدهیم؛ این تبدیل به طور خودکار انجام نمی شود زیرا byte از int کوچکتر است . این نوع تبدیل گاهی “تبدیل همراه با کوچک سازی” نامیده می شود ؛چرا که مقدار int به طور صریح کوچکتر می شود تا در مقصد قابل ذخیره باشد. برای آنکه تبدیل دو نوع ناسازگار را انجام دهید باید ازcasting استفاده کنید ؛ یعنی نبدیل صریح انواع داده ها
در تصویر بالا چندین مثال از تبدیل های سازگار و ناساز گار (ضمنی و صریح) زده شده است به تبدیل های ضمنی در اصطلاح impilcit casting و به تبدیل های ناسازگار در اصطلاح explicit casting می گویند
۱- عبارتها (expression): تاکنون قطعاً عبارتهای ریاضی فراوانی را دیدهاید. برای مثال میدانید که ۲+۲ یک عبارت ریاضی است. در زبانهای برنامه نویسی هم چنین عبارتهایی وجود دارند. اگر بخواهیم دقیقتر باشیم باید بگوییم که هر جملهای که دارای یک «ارزش» باشد، یک «عبارت» یا expression است که البته همانطور که حدس زدهاید یکی از رایجترین انواع عبارتها، عبارتهای ریاضی است. چندین عبارت ریاضی:
int x = 5;
int y = x;
int z = x * y;
int x = 5;
int y = x;
int z = x * y;
همانطور که میدانید در اغلب عبارتهای ریاضی ما از نمادهایی مانند * (ضرب)، + (جمع) و مانند آن استفاده میکنیم. در اصطلاح برنامه نویسی به این نمادهای ویژه، عملگر (Operator) میگویند. عملگرها نمادهایی هستند که برای محاسبات ریاضی و منطقی (logical) از آنها استفاده میشود
۲- عملگرهای ریاضی (Arithmetic Operators): برای انجام محاسبات ریاضی در جاوا (java) از پنج عملگر جمع (+)، تفریق (-)، ضرب (*)، تقسیم (/) و باقیمانده تقسیم (%) استفاده میکنیم
۳- عملگر انتساب (=): معمولاً همه با عملگر انتساب (Assignment Operator) آشنایی داریم. کار اصلی این عملگر نسبت دادن مقدار عبارت سمت راست (عملوند راست) به متغیر (عملوند) سمت چپ خود است. با توجه به تعریف بالا عملیات نسبت دادن یک مقدار به یک متغیر خود یک عبارت ریاضی است زیرا دارای مقدار است. همین خاصیت باعث میشود که بتوانیم چندین عملگر انتساب را زنجیروار به هم متصل نموده و چندین عبارت را در یک عبارت سادهتر نوشت. به مثال زیر دقت کنید:
int x = y = z = 10;
int x = y = z = 10;
4- عملگرهای افزایشی و کاهشی: در برنامه نویسی جاوا بسیاری مواقع اتفاق میافتد که میخواهیم مقدار یک متغیر را یک واحد کاهش یا یک واحد افزایش دهیم. برای این کار به سادگی میتوانیم از هر کدام از عبارتهای زیر استفاده کنیم:
int x = 20;
x = x + 1;
// or
x += 1;
اما در زبان جاوا دو عملگر خاص برای این منظور به وجود آمدهاند: عملگر افزایش یکانی (++) و عملگر کاهش یکانی (–). این دو عملگر را میتوان بدون فاصله قبل یا بعد از متغیر قرار داد تا یکی به مقدار متغیر افزوده شده یا یکی از مقدار متغیر کم شود. به مثالهای زیر دقت کنید:
int x = 20;
x++; // x = x + 1
// or
++x; // x = x + 1
...
x--; // x = x - 1
// or
—x; // x = x - 1
int x = 20;
x = x + 1;
// or
x += 1;
اما در زبان جاوا دو عملگر خاص برای این منظور به وجود آمدهاند: عملگر افزایش یکانی (++) و عملگر کاهش یکانی (–). این دو عملگر را میتوان بدون فاصله قبل یا بعد از متغیر قرار داد تا یکی به مقدار متغیر افزوده شده یا یکی از مقدار متغیر کم شود. به مثالهای زیر دقت کنید:
int x = 20;
x++; // x = x + 1
// or
++x; // x = x + 1
...
x--; // x = x - 1
// or
—x; // x = x - 1
5- عملگرهای مقایسهای: جاوا عملگرهایی برای مقایسه متغیرها (Variables)، متغیرها و متغیرهای لفظی (Literals) و سایر انواع دادهها در برنامه دارد. حاصل این عملگرها یک متغیر بولین است که همواره دارای مقدار true یا false است boolean hip;
int age = 32;
// (1)
hip = (age < 25);
// (2)
hip = ( age == 32 );
// (3)
hip = (age != 32 );
int age = 32;
// (1)
hip = (age < 25);
// (2)
hip = ( age == 32 );
// (3)
hip = (age != 32 );
۶- عملگرهای منطقی: عبارتهایی که حاصل آنها یک مقدار بولی (boolean) است، میتوانند با هم ترکیب شده و عبارتهای پیچیدهتری بسازند. برای ترکیب این عبارتها میتوان از عملگرهای منطقی استفاده کرد. این عملگرها عبارتند از «و» (AND)، «یا» (OR)، «مخالف» (NOT) و «یای انحصاری» (XOR).
اولویت عملگرها : در یه عبارت محاسباتی که متشکل از عملگرها و عملوندهای مختلف می باشد محاسبات طبق اصول و اولویت عملگرها انجام می شود برای مثال برای اینکه بدانیم در محاسبه عبارت زیر کدام عملگر الویت بالایی در اجرا شدن دارد
برای درک اولویت عملگرها در اجرای یک عبارت مانند عبارت بالا باید به ترتیب آیتم های زیر عمل کرد
1 ()
2 ! ~ ++ — sizeof
3 * / %
4 + -
5 « »
6 < <= > >=
7 == !=
8 &
9 ^
10 |
11 &&
12 ||
13 ?
14 = += -= *= /= %=
15 ,
2 ! ~ ++ — sizeof
3 * / %
4 + -
5 « »
6 < <= > >=
7 == !=
8 &
9 ^
10 |
11 &&
12 ||
13 ?
14 = += -= *= /= %=
15 ,
سلام. پوریا جهانبخش هستم و با قسمت هفتم از سری آموزش های پایتون از 0 تا 100 در خدمتتون هستم.
دوستان برای بار چندم تاکید میکنم که اگر مطالب قبلی رو خوب یاد نگرفتید برگردید به عقب و دوباره بخونید و تمرین کنید تا حتما یاد بگیرید و بعدش سراغ قسمت های جدید بیاید.
دوستان برای بار چندم تاکید میکنم که اگر مطالب قبلی رو خوب یاد نگرفتید برگردید به عقب و دوباره بخونید و تمرین کنید تا حتما یاد بگیرید و بعدش سراغ قسمت های جدید بیاید.