متغیر: نامی برای خانهٔ دادهها در حافظه
در برنامهنویسی، متغیر مانند یک جعبهٔ برچسبخورده در حافظهٔ رایانه است که میتوانیم دادههای گوناگون را در آن ذخیره کنیم. هر متغیر یک نام دارد و با کمک آن نام، هم میتوانیم مقداری را در آن قرار دهیم و هم بعداً آن را بخوانیم یا تغییر دهیم. در این مقاله میآموزیم که متغیر چیست، انواع سادهٔ آن کدامند، چگونه مقداردهی میشود و چه اشتباهاتی در کار با آن ممکن است پیش بیاید.
متغیر چیست و چه کاربردی دارد؟
فرض کنید مشغول حل یک مسئلهٔ ریاضی هستید و باید عدد ۷ را چند بار در جاهای مختلف بنویسید. به جای تکرار کردن عدد، میتوانید از یک نماد مانند x استفاده کنید و بنویسید x = ۷. این دقیقاً همان کاری است که متغیر در برنامهنویسی انجام میدهد. متغیر، یک مکان نامگذاریشده در حافظهٔ رایانه است که میتواند یک مقدار را در خود نگه دارد. این مقدار میتواند عدد، نوشته، عبارت درست یا نادرست و حتی چیزهای پیچیدهتر باشد.
برای ساختن یک متغیر، باید سه کار انجام دهیم: نخست تعریف کردن آن (یعنی به رایانه بگوییم که میخواهیم یک متغیر با فلان نام بسازیم)، دوم مقداردهی (یعنی برای نخستین بار مقداری در آن بگذاریم) و سوم در بسیاری از زبانها باید نوع داده را هم مشخص کنیم. برای نمونه، در برخی زبانها اگر قرار باشد سن یک دانشآموز را در متغیر سن ذخیره کنیم، باید بنویسیم که این متغیر از نوع عدد صحیح است، نه نوشته یا اعشاری.
مثال ملموستر: فرض کنید میخواهید برنامهای بنویسید که نمرهٔ سه درس را جمع کند. به جای اینکه اعداد نمرهها را بارها در جای جای برنامه بنویسید، میتوانید سه متغیر به نامهای نمره_ریاضی، نمره_علوم و نمره_فارسی تعریف کنید و بعداً در برنامه، هر جا که نیاز به این نمرهها دارید، از نام متغیرها استفاده کنید. اگر نمرهٔ یکی از درسها تغییر کند، فقط کافی است مقدار آن متغیر را یک بار عوض کنید و همهٔ جای برنامه بهروز میشود.
انواع داده و تأثیر آن بر متغیرها
هر متغیر بسته به نوع دادهای که قرار است ذخیره کند، فضای متفاوتی از حافظه را اشغال میکند و رفتارهای متفاوتی از خود نشان میدهد. رایجترین نوعهای داده که در برنامهنویسی با آنها سروکار دارید، عبارتاند از:
| نوع داده | کاربرد | مثال |
|---|---|---|
| عدد صحیح | برای شمارش و محاسبههای دقیق بدون اعشار | تعداد_کتاب = ۱۲ |
| عدد اعشاری | برای اندازهگیری و محاسبات دقیق با اعشار | نمره = ۱۸.۷۵ |
| نوشته (رشته) | برای ذخیرهٔ متن، اسم، آدرس و هر چیزی که با حروف سروکار دارد | نام_دانشآموز = "سارا" |
| دروست یا نادرست (منطقی) | برای پاسخ به سؤالهای بله/خیر و شرطها | وضعیت_قبول = درست |
درک این نوعها کمک میکند تا بدانید چرا گاهی برنامه با خطا مواجه میشود. مثلاً اگر متغیری را برای ذخیرهٔ عدد تعریف کرده باشید و بعد بخواهید متن در آن بریزید، برنامه دچار اشتباه میشود و پیام خطا نشان میدهد. پس حتماً پیش از استفاده، به نوع دادهای که قرار است در متغیر ذخیره شود، توجه کنید.
چالشهای رایج و پرسشهای کلیدی
خیر، متغیرها میتوانند مقدار خود را تغییر دهند. به همین به آنها «متغیر» میگوییم. شما میتوانید در طول اجرای برنامه، هر چند بار که نیاز دارید، مقدار جدیدی در یک متغیر قرار دهید. مثلاً متغیر امتیاز را ابتدا صفر کنید و هر بار که بازیکن امتیاز میگیرد، یک واحد به آن اضافه کنید.
خیر، در یک محدودهٔ مشخص از برنامه، هر متغیر باید نامی منحصربهفرد داشته باشد. اگر دو متغیر با نام یکسان تعریف کنید، برنامه نمیداند که منظور شما کدام یک است و خطا رخ میدهد. پس برای هر داده، یک نام جداگانه و متفاوت انتخاب کنید.
در بسیاری از زبانهای برنامهنویسی، اگر به متغیر مقدار اولیه ندهید، ممکن است مقداری تصادفی یا «تهی» داشته باشد که بعداً باعث خطا شود. بهتر است همیشه هنگام تعریف، یک مقدار اولیهٔ مطمئن به آن بدهید، حتی اگر صفر یا یک نوشتهٔ خالی باشد. این کار از بسیاری از اشتباهات جلوگیری میکند.
این اتفاق معمولاً به خاطر «بازهٔ دید» یا همان محدودهٔ دسترسی متغیر رخ میدهد. هر متغیر تنها در بخش مشخصی از برنامه قابل استفاده است. اگر خارج از آن بخش از آن استفاده کنید، گویی متغیری با آن نام وجود ندارد و برنامه با خطا مواجه میشود. این قانون به نظم برنامه کمک میکند.
- متغیر، یک مکان نامدار در حافظهٔ رایانه برای ذخیرهٔ داده است.
- هر متغیر یک نام، یک نوع داده و یک مقدار دارد.
- مقدار متغیرها در طول اجرای برنامه قابل تغییر است.
- انتخاب نامهای گویا و مناسب، خوانایی برنامه را بالا میبرد.
- توجه به نوع داده و محدودهٔ دسترسی، از بروز خطاهای رایج جلوگیری میکند.