السلام عليكم ورحمة الله وبركاته..
تحدثنا في الدرس السابق عن
المتغيرات و انواعها في لغة الجافا. و في درس اليوم سنتعلم كيف نشهرها
(نعرفها) أو نقوم بمساواتها و إعطائها قيماً.
ان اشهار المتغيرات يتم في الجافا على هذه الصيغة:
لنفرض مثلاً اننا نريد اشهار متغير من نوع متغير صحيح int
في السطر السابق يمثّل (x) اسم لمتغير من نوع رقم صحيح يتم تخزينه في 4 بايت. و يمكن اعطاؤه أي قيمة مثلاُ:
و هكذا نكون أعطينا المتغير (x) القيمة 10. و بالمثل نستطيع اشهار متغيرات من أي نوع آخر.
و توفر الجافا اعطاء المتغيرات قيم مبدئية عند اشهارها، مثلاً.. نستطيع أن نكتب في برنامجنا:
double x=14.3; char ch='m'; |
اننا
في ما سبق، قد قمنا باشهار متغيرين الأول من نوع double و قد أعطيناه قيمة
مبدئية هي: 14.3، اما المتغير الثاني فهو متغير نصي من نوع char و أعطيناه
قيمة مبدئية هي الحرف 'm'.
| مثال تطبيقي على اشهار واعطاء قيم للمتغيرات في الجافا: | |
في الصورة التالية نرى برنامج مكتوب بلغة الجافا. و قد قمنا فيه بانشاء بعض المتغيرات و من ثم طباعتها.
في
السطر السابع (و يقع في المنطقة الوردية) مثلاُ قمنا بانشاء متغير من نوع
short و أعطيناه قيمة مبدئية هي 200. و نلاحظ ان جميع جمل الجافا تنتهي بـ
(
.
بينما في السطر السادس قمنا بانشاء متغير من نوع byte و لم نعطه اي قيمة مبدئية.
عند تشغيل البرنامج السابق ستواجه المشكلة التالية:
ان هذه المشكلة ظهرت تحديداً عندما حاولنا طباعة المتغيرين b وnumber. لاحظ انها
لم تظهر عندما قمنا باشهارهما. و لكنها ظهرت عند محاولتنا لاستخدامهما. هل تستطيع ان تعطي سبباً لذلك؟
في
الواقع ان السبب هو اننا لم نعطهما قيمة مبدئية! ثم حاولنا كباعتهما. الآن
ما الذي نحاول فعله؟ نطبع قيمة لا نعرفها! لذا سيتوقف مترجم الجافا و
يعطيك الخطأ السابق.
كيف نعالج المشكلة؟ نعطيهما قيماً قبل أن نحاول طباعتهما.
نلاحظ
في هذه الصورة أننا قمنا باعطاء قيماً للمتغيرات التي اشهرناها عن طريق
المساواة في حالة المتغير b و عن طريق وضع ناتج الطرح في المتغير number.
و هكذا حللنا المشكلة.
يمكننا أيضاً ترتيب الطباعة في الأسطر من 28 إلى 35.
لنأخذ السطر الـ 30 مثلاُ
System.out.println("number = " + number); |
سبق و شرحنا طريقة الطباعة في الجافا. في هذا السطر نقوم في الواقع بطباعة هذه الجملة:
ثم
قمنا بعلامة زائد التي تعني اننا سنطبع شيئاً آخر إلى جانبها. ثم وضعنا
اسم المتغير number و هذا يعني انه سيقوم بطباعة قيمة المتغير number.
و هنا أحب أن أضع ما نفعله في الدوس:
لاحظ
أنني عندما حاولت تشغيل البرنامج لأول مرة لم يقبل ان يقوم بترجمة
البرنامج، و قد تصادقك هذه المشكلة، لذا وضعت حلها في السطرين الأصفرين في
الصورة السابقة.
و في آخر الصورة ترى ان جمل الطباعة في البرنامج قد قامت بعملها الجيّد.
| مثال تطبيقي على استخدام المتغيرات في الجافا: | |
هنا
لدينا برنامج يقوم بانشاء ثلاثة متغيرات من نوع عدد صحيح int. و البرنامج
يقوم باعطاء المتغيرين الأولين x , y قيم أولية. ثم يضع ناتج الجمع في
المتغير الثالث z.
لاحظ جملة الطباعة في آخر البرنامج.. مرتبة جداً، أليس كذلك؟
انظروا الى النتيجة:
أرجو أن يكون الدرس واضحاً.
وفوق كل ذي علم عليم