المتغير هو اسم مخصص لمنطقة تخزين يمكن التحكم فيها بواسطة البرنامج. يحدد نوع المتغير حجم وتكوين ذاكرة المتغير.
يتم حساب نطاق القيمة التي يمكن إدراجها في المتغير قبل إدخال القيمة فيه، حيث يجب تحديد نوع المتغير قبل إدخال القيمة فيه.
نطاق المتغيرات
نطاق المتغير هو حرفيًا عمر المتغير. إنها عبارة عن كتلة تعليمات برمجية يكون فيها المتغير صالحًا أو لا يزال على قيد الحياة.
function poo() { var a; }
ضمن الدالة 'a'، نعلن عن المتغير 'poo'. ويظل نطاق هذا المتغير ضمن تلك الوظيفة، ولا يمكن استخدامه خارج تلك الوظيفة.
هناك ثلاثة أماكن حيث يمكننا الاستفادة من المتغير في برمجتنا.
- في دالة أو داخل كتلة يقال أنها متغيرات محلية
- إذا تم استخدامها خارج جميع الوظائف، فسيتم تسميتها كمتغيرات عامة
- إذا تم استخدامها في تعريف معلمات الوظيفة، فسيتم تسميتها كمعلمات رسمية.
اختلاف رئيسى
- يسمى المتغير الذي يتم الإعلان عنه داخل الدالة كمتغير محلي، بينما إذا تم الإعلان عن المتغير خارج الدالة فإنه يسمى المتغير العام.
- من ناحية أخرى، عندما تبدأ الوظيفة في التنفيذ وتفقد عند انتهاء الوظيفة، يتم إنشاء المتغيرات العامة عند بدء التنفيذ وتفقد عندما ينتهي البرنامج. يتم إنشاء المتغيرات المحلية.
- لا يتضمن المتغير المحلي مشاركة البيانات، في حين يتم إعطاء مشاركة البيانات بواسطة المتغير العام.
- يتم تخزين المتغيرات المحلية على المكدس، بينما يتم تخزين المتغير العام بواسطة المبرمج في موقع ثابت.
- بالنسبة للمتغيرات المحلية، هناك حاجة إلى معلمات بينما لا يلزم نقل المتغير العام.
معامل | محلي | عالمي |
---|---|---|
نِطَاق | داخل وظيفة. | النطاق خارج الوظيفة. |
قيمة | إذا لم تتم تهيئة القيمة، فسوف تعطي قيمة القمامة. | إذا لم تتم تهيئة القيمة فستعطي صفرًا افتراضيًا. |
حياة | يتم إنشاؤه عندما تبدأ الوظيفة في التنفيذ ويتم فقده عند انتهاء الوظائف. | يتم إنشاؤه قبل بدء التنفيذ العالمي للبرنامج، ويتم فقده عند انتهاء البرنامج. |
تبادل البيانات | غير ممكن. | ممكن. |
حدود | مطلوب. | غير مطلوب. |
الوصول إليها عن طريق | المتغيرات المحلية | يمكننا الوصول إلى المتغيرات العالمية في جميع أنحاء البرنامج. |
تخزين الذاكرة | على المكدس. | في مكان ثابت كما تم تعيينه بواسطة الكمبيوتر. |
متغير محلي
يتم تحديد المتغير المحلي في كتلة البرمجة أو الإجراءات الفرعية كشكل من أشكال المتغير المعلن. يستمر المتغير المحلي قبل تنفيذ كتلة الوظيفة. سيتم فقدانه تلقائيًا بعد ذلك.
مثال على المتغير المحلي
public int sum(){ int x =4; int y=5; return x+y; }
هنا، 'x' و'y' متغيرات محلية
المتغير العالمي
يُعرف المتغير المحدد خارج الوظيفة أو كتلة التعليمات البرمجية باسم المتغير العام. فهو يتمتع بانتشار عالمي، مما يعني أنه يحتفظ بأهميته طوال عمر البرنامج. لذلك، يمكن لأي ميزة محددة داخل البرنامج الوصول إليها داخل البرنامج، ما لم يتم تظليلها.
مثال على المتغير العالمي
int x =4; int y=5; public int add(){ return x+y; }
هنا، يعد 'x' و'y' متغيرين عالميين.
مزايا استخدام المتغيرات العالمية
- يمكن الوصول إلى المتغير الشامل من جميع الوظائف أو الوحدات في البرنامج.
- نحتاج فقط إلى الإعلان عن متغير عام لمرة واحدة خارج الوحدات.
- يتم استخدامه عندما يحتاج المستخدم إلى الوصول إلى نفس البيانات في جميع أنحاء البرنامج مرارًا وتكرارًا.
عيوب استخدام المتغيرات العالمية
- يتم الإعلان عن العديد من المتغيرات على أنها عمومية، ثم تبقى في الذاكرة حتى اكتمال تنفيذ البرنامج. يمكن أن يؤدي هذا إلى ظهور مشكلة نفاد الذاكرة.
- يمكن لأي ميزة تغيير البيانات. أي عبارة مكتوبة في البرنامج سوف تغير قيمة المتغير الشامل. وفي البيئات متعددة المهام، يمكن أن يؤدي ذلك إلى نتائج غير متوقعة.
- نحتاج إلى تعديل جميع الوحدات التي تمت تسميتها إذا تم إيقاف المتغيرات العامة بسبب إعادة بناء التعليمات البرمجية.
مزايا استخدام المتغيرات المحلية
- إن بقاء قيم المتغيرات دون تغيير أثناء تشغيل المهمة هو المعنى الأساسي للمتغير المحلي.
- إذا تم تغيير متغير واحد يعمل بشكل متزامن بواسطة العديد من المهام، فقد تكون النتيجة غير متوقعة. ومع ذلك، فإن الإعلان عنه كمتغير محلي سوف يحل المشكلة.
- يمكننا تعيين نفس الاسم للمتغيرات في وظائف مختلفة.
- عند تنفيذ الوظيفة، يتم تحرير ذاكرة المتغير.
عيوب المتغيرات المحلية
- تعد طريقة تصحيح أخطاء المتغير المحلي صعبة للغاية.
- يجب نقل البيانات الشائعة بانتظام لأن مشاركة البيانات بين الوحدات غير ممكن.
- لديهم طيف صغير جدًا.
ما هو أكثر فائدة؟
المتغير المحلي والعالمي الذي لا يقل أهمية عند كتابة برنامج بأي لغة. ومع ذلك، فإن كمية كبيرة من المتغير الشامل يمكن أن تشغل ذاكرة ضخمة. أصبح من الصعب تحديد الانتقال غير المرغوب فيه إلى المتغيرات العالمية. ومن الحكمة أيضًا تجنب الإعلان عن المتغيرات العامة غير المرغوب فيها.