در این مقاله میخواهیم به یکی از پرکاربردترین واژهها در تمامی زبان های برنامه نویسیزبان های برنامه نویسی چیست؟این مقاله عالی توضیح داده که زبان های برنامه نویسی چیست؟ و انواع زبان های برنامه نویسی و بهترین زبان برنامه نویسی برای شروع و پردرآمدترین آنها را معرفی کرده یعنی متغیر یا Variables بپردازیم؛ همچنین انواع متغیرها و قواعد آنها را در زبانهای مختلف برنامه نویسی بررسی خواهیم کرد اما قبل از همه باید بدانیم اصلا متغیر چیست؟
متغیر چیست؟
در تعریف، به فضایی از حافظه اصلی یا حافظه رم (RAM) کامپیوتررم کامپیوتر چیست؟ رم کجاست؟ معرفی انواع رم (RAM) کامپیوتراین مقاله عالی به معرفی رم کامپیوتر پرداخته، همچنین بررسی کرده رم کامپیوتر (RAM : Random Access Memory) کجاست و انواع رم کامپیوتر را معرفی کرده است که برای ذخیره دادهها کنار گذاشته میشود متغیر میگویند. تمامی متغیرهای ذخیره شده در حافظه اصلی دارای یک نام نمادین با عنوان شناسه متغیر یا Identifier شناخته میشوند بهعلاوه، دارای یک مقدار یا Value هستند. متغیرها میتوانند دادههای مختلفی را از جمله نوع عددی، نوع متنی، نوع باینری و انواع دیگر را در خود ذخیره کنند. در بعضی از زبانها نوع متغیر باید در زمان تعریف متغیر مشخص شود و در دیگر زبانها نیازی به انجام این کار نمیباشد.
همانطور که از نام متغیر پیداست، مقادیر آن در طول برنامه میتواند تغییر کند و مقدار یا Value جدیدی به خود بگیرد. بر خلاف ثابتها (Constants) که در تمامی برنامه تنها یک مقدار دارند، تقریبا تمامی موارد مورد نیاز در طول اجرای یک برنامه، درون متغیرها ذخیره میشوند؛ بهعنوان مثال یک برنامه ماشین حساب را در نظر بگیرید، وقتی کاربر یک عدد مثلا 5 را وارد میکند، این عدد درون یک متغیر از نوع عدد صحیح ذخیره میشود و با وارد کردن عدد دیگر مثلا 10.5، یک متغیر دیگر از نوع شناور یا اعداد اعشاری در حافظه رم ساخته شده و عدد 10.5 در آن ذخیره میشود سپس وقتی کاربر حاصل جمع این دو عدد را درخواست کرد، محاسبات در برنامه انجام شده و عدد حاصل از خروجی یعنی 15.5 درون یک متغیر دیگر ذخیره شده و در خروجی نمایش داده میشود. در مورد نوع عدد صحیح و نوع شناور در ادامه بحث خواهیم کرد.
مراحل کار با متغیر
تعریف (Declare) و استفاده از متغیر در برنامه نویسی در 3 مرحله زیر خلاصه میشود:
- تعریف متغیر
- مقداردهی متغیر
- فراخوانی و استفاده از متغیر
گاهی اوقات مرحله 1 و 2 با یکدیگر ادغام شده و در یک خط انجام میشود که به آن مقداردهی اولیه یا Initialization نیز میگویند. در تعریف متغیر، یک نام غیرتکراری باید به آن منتسب کرد تا بتوانیم در آینده و در طول کدنویسیکدنویسی چیست؟ – کد نویسی یعنی چهاین مقاله عالی به بررسی این پرداخته که کد نویسی چیست و مفهوم کد نویسی را بررسی کرده، همچنین تفاوت کدنویسی و برنامه نویسی و کاربرد های کدنویسی را بررسی کرده از آن استفاده کنیم (مرحله 3) همچنین مقداردهی متغیر باید به شکل صحیحی انجام شود، فرض کنید متغیری تعریف کردهایم با نام firstName و قصد داریم تا نام کاربر را در آن ذخیره کنیم، اگر بهجای ذخیره نام مثلا عدد 25 را به متغیر تعریف شده نسبت دهیم، در آینده برنامه ما با خطا مواجه خواهد شد.
نحوه تعریف متغیر
بهطور کلی شیوه تعریف یک متغیر همانند عبارت زیر است:
<type> <name> = <value>
که در آن <type> نوع متغیر، <name> نام یا شناسه متغیر و در آخر <value> مقدار نسبت داده شده به متغیر را مشخص میکند. در زبانهای برنامه نویسی مختلف، سینتکس (Syntax) یا نحو مربوط به تعریف متغیر متفاوت است، همچنین فضای تخصیص داده شده به آن متغیر (مثلا 4 بایت یا 8 بایت و...) نیز تفاوتهایی دارد که معمولا مفسر یا کامپایلر (Compiler)کامپایلر چیست و چگونه کار میکند و چرا از آن استفاده میشود؟کامپایلر (Compiler) یک برنامهی خاص برای ترجمه سورس کدهای (Source Code) یک زبان برنامه نویسی، به زبان ماشین یا بایت کد و یا یک زبان برنامه نویسی دیگر است با توجه به تعریف آن متغیر تصمیمگیری میکند. در این قسمت میخواهیم نحوه تعریف متغیر در چند زبان برنامه نویسی محبوب و پرکاربرد را با هم بررسی کنیم تا با تفاوتهای آنها بیشتر آشنا شوید.
تعریف متغیر در زبان C/C++
در زبان برنامه نویسی C زبان برنامه نویسی C – مزایا و کاربرد زبان C – فرق C و ++Cاین مقاله عالی ابتدا توضیح میدهد که زبان برنامه نویسی c چیست، سپس به بررسی مزایا و معایب زبان C ، کاربردهای زبان سی ، و تفاوت بین C و ++C میپردازد و یا زبان C++برنامه نویسی سی پلاس پلاس چیست؟ مزایای برنامه نویسی C++؟برنامه نویسی سی پلاس پلاس چیست و چه کاربردی دارد؟ این صفحه عالی به بررسی مزایای برنامه نویسی C++ پرداخته و نمونه هایی از کدهای زبان برنامه نویسی ++C را آورده، برای تعریف متغیرها باید نوع آنها حتما مشخص شوند؛ همچنین متغیرها میتوانند مقدار نداشته باشند و در طول برنامه نویسی مقدار بگیرند. کد زیر را در نظر بگیرید:
int x;
float y = 3.14;
char c = 'A';
x = 21
در خط اول متغیری با نام x از نوع int یا عدد صحیح تعریف شده است، در خط 2 و 3 بهترتیب متغیری از جنس float یا اعداد اعشاری (شناور) و کاراکتر تعریف شده است. توجه کنید که به متغیر y و c مقدار اولیه داده شده است اما متغیر x دارای هیچ مقدار اولیهای نمیباشد و مقدار 21 در خط آخر به این متغیر نسبت داده شده است.
در زبان سی پلاس پلاس، نوع auto هم وجود دارد که بهصورت داینامیک نوع متغیر را تخصیص میدهد. همانند کد زیر:
auto number = 42;
auto name = "Ali";
تعریف متغیر در زبان Python
زبان پایتون یک زبان کامپایلری نیست و تحت مفسر (Interpreter) است و انتساب نوع متغیر در حین اجرای برنامه صورت میگیرد بنابراین نیازی به مشخص کردن نوع متغیر نیست و تنها کافی است مقدار دلخواه خود را به یک متغیر نسبت دهید. کد زیر را در نظر بگیرید:
first_name = "Ali"
last_name = "Alipoor"
age = 25
همانطور که مشاهده میکنید نوع متغیرها در اینجا مشخص نشده است و در واقع نیازی به انجام این کار نمیباشد؛ همچنین اگر در کدمان به متغیر age یک مقدار رشتهای مانند زیر منتسب کنید هیچ باگمعنی باگ چیست | باگ یعنی چه؟ | انواع باگ های نرم افزاریاین مقاله عالی به توضیح معنی باگ (bug)، معرفی انواع باگ های نرم افزاری، توضیح آنکه چگونه از پدید آمدن باگ جلوگیری کنیم؟ و در نهایت نحوه رفع باگ پرداخته و خطایی رخ نمیدهد.
age = "Hello World!"
زیرا نوع متغیر بهصورت پویا تغییر میکند بنابراین متغیر age که قبلتر از نوع عددی بوده است، حالا به نوع رشته تغییر پیدا کرده است.
مورد دیگری که باید در مورد تعریف متغیرها در زبان پایتونزبان برنامه نویسی پایتون چیست؟ – نحوه شروع و دلایل محبوبیتزبان برنامه نویسی پایتون (Python) چیست؟ این مقاله عالی به بررسی دلایل محبوبیت پایتون، موارد استفاده از پایتون و نحوه شروع به برنامه نویسی پایتون پرداخته مد نظر قرار دهید این است که متغیرها نمیتوانند همانند زبان C بدون مقداردهی اولیه تعریف شوند؛ به این علت که مفسر میخواهد نوع متغیر را بداند. از آنجایی که نوع متغیر در پایتون مشخص نمیشود، حتما باید مقدار اولیه داشته باشد بنابراین کد زیر شامل خطا میشود:
x # Raises a NameError: "name 'x' is not defined"
تعریف متغیر در زبان C#
تعریف متغیرها در زبان برنامه نویسی C#سی شارپ چیست ⚡️سی شارپ به زبان سادهاین صفحه عالی بررسی کرده که سی شارپ چیست و تاریخچه سی شارپ، محیط و ابزارهای سی شارپ، ویژگی های سی شارپ، مزایای سی شارپ و کاربرد و بازار کار سی شارپ را گفته بسیار شبیه به زبانهای C/C++ است:
int x;
float y = 3.14f;
char c = 'A';
در زبان C# نیز میتوان متغیرها را با و بدون مقداردهی اولیه تعریف کرد.
تعریف متغیر در زبان PHP
نوع متغیرها در زبان PHP همانند زبان پایتون بهصورت پویا تخصیص داده میشود و میتوان نوع آنها را در حین برنامه نیز تغییر داد؛ همچنین همانند زبان های C/C++ میتوان متغیرها را بدون مقداردهی اولیه تعریف کرد:
$x;
$y = 3.14;
$z = 'Hello';
$x = 10;
$x = 'Hello';
همانطور که مشاهده میکنید نوع متغیرها مشخص نشدهاند و با توجه به مقدار نسبت داده شده نوع آنها مشخص میشود. متغیر x در اینجا بدون مقداردهی اولیه تعریف شده است و در خط 5 با عدد 10 مقداردهی شده است و در خط 7 یک مقدار رشتهای گرفته است که باعث تغییر نوع متغیر از عددی به رشتهای میشود.
تعریف متغیر در زبان Javascript
در زبان برنامه نویسی جاوا اسکریپتجاوا اسکریپت چیست؟ معرفی زبان برنامه نویسی java scriptزبان برنامه نویسی جاوا اسکریپت چیست و چه کاربردی دارد؟ این صفحه عالی به بررسی مزایای JavaScript پرداخته و مبانی برنامه نویسی جاوا اسکریپت را آموزش داده برای تعریف متغیر از سینتکس let و یا var استفاده میشود و همانند زبان پایتون و Php، نوع متغیر به صورت پویا تخصیص داده میشود:
let x;
const y = 3.14;
var z = 'Hello';
x = 10;
انواع متغیرها
پیشتر نوعهای عدد صحیح و عدد اعشاری را در کدها مشاهده کردیم. بهطور کلی نوعهای اصلی متغیرها را که در اکثر زبان های برنامه نویسی وجود دارند را در جدول زیر مشاهده میکنید:
نوع متغیر | توضیحات | مثال |
---|---|---|
Integer (int) | عدد صحیح بدون اعشار | 3 – 5 – 1390 و... |
Floating-point (float, double) | از نوع اعداد اعشاری | 3.13 – 57.23983 و... |
Character (char) | متغیر از نوع کاراکتر | ‘A’ – ‘C’ و... |
String (str) | متغیر از نوع رشته یا همان متن | “Hello World” – “Sina” و... |
Boolean (bool) | متغیر برای ذخیره ی مقدار بولین صحیح یا غلط | true - false |
در بعضی از زبانهای برنامه نویسی مانند زبان C++، نوعهای دیگری نیز وجود دارند؛ مانند Long برای اعداد صحیح بزرگ، و Short برای اعداد صحیح کوچک، همچنین امکان محدود کردن آنها به تنها عدد مثبت (بدون علامت) نیز وجود دارد؛ بهعنوان مثال Unsigned Int برای تعریف متغیر از نوع عدد صحیحی است که تنها قادر است مقدار مثبت بگیرد.
حوزه دید متغیرها
یکی دیگر از مباحثی که در مورد متغیرها وجود دارد، بحث حوزه دید متغیرها یا همان Scope میباشد. اینکه متغیر کجا تعریف میشود و در کدام قسمت از برنامه ما قابل دسترسی است از اهمیت ویژهای برخوردار است؛ چرا که در صورت همنام بودن یک متغیر در یک Scope برنامه ما دچار خطای زمان کامپایل میشود. در برنامه نویسیبرنامه نویسی کامپیوتر چیست و چطور می توانید یک برنامه نویس موفق شوید؟در عصر فعلی برنامهنویسی یکی از پرطرفدارترین شغلهای دنیاست، دغدغهای افرادی که میخواهند در مسیر برنامهنویس شدن قدم بردارند این است که نمیدانند از کجا باید شروع کنند، در این صفحه هر آن چه برای تبدیل شدن به یک برنامه نویس حرفه ای نیاز دارید در اختیارتان قرار گرفته است، متغیرها برای هدف خاصی ایجاد میشوند و با توجه به آن هدف، محل تعریف متغیر و Scope آن مشخص میشود؛ بهعنوان مثال فرض کنید در یک نرمافزار بانکی قصد داریم تا یک متغیر تعریف کنیم برای مسیر ذخیره پایگاه داده؛ از آنجایی که تمامی عملیات بانک درون این پایگاه دادهپایگاه داده چیست؟ – انواع، مفاهیم و کاربردهاپایگاه داده چیست؟ این مقاله به بررسی این موضوع و همچنین انواع پایگاه داده، کاربردهای پایگاه داده، محبوب ترین پایگاه های داده و اجزای اصلی پایگاه داده پرداخته ذخیره میشود، در نتیجه نیاز است تا در Scopeهای متفاوتی از این متغیر استفاده کنیم بنابراین متغیر را در جایی تعریف میکنیم که بتوانیم در تمامی قسمتهای کدمان از آن استفاده کنیم. به این Scope اصطلاحا Global Scope میگویند. حوزههای مهم در برنامه نویسی را در لیست زیر مشاهده میکنید:
- Global Scope: متغیرهایی که درون هیچ تابعی تعریف نشدهاند و درون بدنه اصلی کلاسها تعریف شدهاند، در حوزه Global قرار دارند و از تمامی بلوکهای کد میتوان به آن دسترسی داشت.
- Function Scope: متغیری که درون یک متد یا تابع تعریف شده باشد، فقط درون همان متد قابل دسترسی است. نام دیگر این حوزه Local Scope میباشد بنابراین وقتی متغیری داخل یک متد تعریف شده باشد، از دیگر متدها نمیتوان به آن دسترسی داشت.
- Block Scope: به کد هایی که درون { } قرار دارند، بلوک کد گفته میشود. اگر متغیری درون یک بلوک کد تعریف شود، تنها در همان بلوک قابل دسترسی خواهد بود.
در سورس کد (Source Code)سورس کد چیست؟ آیا سورس کد یا سورس برنامه قابلیت اجرا دارند؟این مقاله عالی به سورس کد یا سورس برنامه پرداخته؛ همچنین به بررسی اهداف سورس کد، نحوه ساخت سورس کد و اینکه آیا سورس کد ها قابلیت اجرا دارند پرداخته زیر نمونهای از تعریف متغیر در هر سه Scope معرفی شده را مشاهده میکنید:
let globalVariable = "Global scope variable";
function functionAndBlockScope() {
let functionVariable = "Function scope variable";
if (true) {
let blockVariable = "Block scope variable";
}
}
قواعد و قوانین نامگذاری متغیرها
یکی از موارد بسیار مهم در نوشتن یک برنامه خوب و خوانا، تعریف صحیح متغیرها است. حتی اگر تمامی قسمتهای برنامه بهطور درستی نوشته شده باشند ولی در نامگذاری متغیرها دقت کافی به عمل نیامده باشد، کد نوشته شده بسیار برای اعضای تیم و کسانی که قصد استفاده از آن کد را دارند سردرگم کننده خواهد بود بنابراین برای تعریف متغیر باید دقت لازم را به خرج دهید. هنگام تعریف متغیر یکسری قوانین (Rules) وجود دارد و یکسری قواعد یا قرارداد (Convention) که این دو با یکدیگر تفاوت دارند.
قوانین تعریف متغیر
قوانین تعریف متغیر به مواردی گفته میشود که در صورت رعایت نکردن آنها با خطای زمان کامپایل مواجه میشوید و امکان اجرای کد را نخواهید داشت. از جمله این قوانین که در اکثر زبانهای برنامه نویسی وجود دارد در لیست زیر آمده است:
- نام متغیر هیچ وقت با یک عدد شروع نمیشود بنابراین نامهایی مانند 3numbers و یا 10gig اشتباه هستند.
- بین نام متغیر نباید هیچ فاصلهای وجود داشته باشد بنابراین متغیری مانند first name اشتباه است. بین first و name نباید فاصلهای باشد. مانند firstname ،firstName و یا first_name و...
قواعد و قراردادهای تعریف متغیر
قراردادها یا Conventionهای تعریف متغیر معمولا توسط همان زبان برنامه نویسی مشخص میشود و رعایت نکردن آنها باعث ایجاد هیچ خطایی نمیشود و صرفا برای یکدست بودن و خوانایی از این قراردادها پیروی میشود؛ بهعنوان مثال تعریف متغیر بهصورت Camel Case در زبان برنامه نویسی جاواجاوا چیست؟ تعریف، معنی و ویژگی های جاوا (java) از 0تا100جاوا یک زبان برنامه نویسی همه منظوره، مبتنی بر کلاس و شی گرا است که برای داشتن وابستگی های پیاده سازی کمتر طراحی شده است، زبان برنامه نویسی جاوا شبیه ++C است بسیار متداول است. متغیرهایی مانند firstName و userEmailAddress از نوع Camel Case هستند. در این نوع تعریف متغیر، حرف اول کلمه اول کوچک و حرف اول بقیه کلمات بزرگ یا Capital هستند؛ بهعنوان مثالی دیگر میتوان به زبان برنامه نویسی پایتون اشاره کرد که در آن متغیرها از Snake Case پیروی میکنند. در این نوع، بین کلمات از خط زیر یا _ استفاده میشود مانند first_name و یا user_email_address و... . انواع دیگر قرارداد برای تعریف نام وجود دارد مانند Pascal Case، Kebab Case و Screaming Snake Case که کمتر متداول هستند اما در بعضی زبانها مورد استفاده قرار میگیرند.
جمعبندی
متغیرها از مهمترین بخشهای کدنویسی بهحساب میآیند و با این حال که بسیار تعریف آنها ساده است، اما در بعضی مواقع میتواند چالشبرانگیز باشد بهخصوص زمانی که بهصورت تیمی بر روی یک برنامه بزرگ کار میکنید. در این مقاله به طور کلی به بررسی متغیرها در زبان برنامه نویسی پرداختیم؛ همچنین مثالهای متعددی را فراهم کردیم تا با تفاوت تعریف متغیرها در زبان های برنامه نویسی مختلف آشنا شوید.
متغیر چیست؟
بهطور خلاصه متغیر به مکانی از حافظه رم اشاره دارد که مقداری در آن ذخیره شده است. این مقدار که دارای یک نام یا شناسه و یک مقدار میباشد، در کدنویسی و توسط برنامه نویس تعریف میشود و میتوان مقدار آن را در طول برنامه تغییر داد و با توجه به حوزه تعریف شده، از آن متغیر در هر زمان استفاده کرد.
انواع متغیرها کدامند؟
انواع متغیرها بسته به زبان برنامه نویسی مورد نظر متفاوت است؛ اما بهطور کلی نوعهای اصلی شامل عدد صحیح (Integer)، عدد اعشاری (Float, Double)، رشتهای (String)، کاراکتر (Char) و بولین (Boolean) هستند.