القراءة من لوحة المفاتيح
حتى الآن كنّا نطبع فقط. الآن يصبح البرنامج قادرًا على قراءة ما يكتبه المستخدم.
- استيراد كلاس Scanner وإنشاء كائن منه.
- قراءة عدد صحيح أو عشري أو نصّ بالدالة المناسبة.
- كتابة رسالة توضيحية قبل كل قراءة.
- تجنّب خطأ عدم تطابق نوع الإدخال.
١ثلاث خطوات للقراءة
import java.util.Scanner;Scanner input = new Scanner(System.in);int age = input.nextInt();٢دوال القراءة
| الدالة | تقرأ | تُخزَّن في |
|---|---|---|
input.nextInt() | عددًا صحيحًا | int |
input.nextDouble() | عددًا عشريًّا | double |
input.next() | كلمة واحدة (حتى أول مسافة) | String |
input.nextLine() | سطرًا كاملًا مع المسافات | String |
| input.next() | |
| input.nextLine() |
٣مثال شامل: شغّله بنفسك
import java.util.Scanner; public class Input{ public static void main(String[] args) { Scanner input = new Scanner(System.in); System.out.print("اكتب اسمك: "); String name = input.nextLine(); System.out.print("اكتب عمرك: "); int age = input.nextInt(); System.out.println("أهلاً " + name); System.out.println("عمرك بعد سنة: " + (age + 1)); }}
اكتب ما سيُدخله المستخدم ثم شغّل. الإدخال يظهر في الناتج بخط مائل.
٤نقاط مهمة
- الترتيب: اطبع رسالة توضيحية بـ print ثم اقرأ، ليعرف المستخدم ماذا يُدخل.
- طابِق النوع: nextInt() للأعداد الصحيحة و nextLine() للنصوص؛ إدخال نصّ مكان رقم يسبّب خطأ.
- الأقواس: في
(age + 1)تضمن الجمع قبل الدمج مع النصّ.
توقّع وتحقّق
أجب قبل أن تنظر إلى الشرح. التصحيح فوري، وإجاباتك تُحفظ.
أي سطر يُكتب في أعلى الملف لاستخدام Scanner؟
لقراءة سعر مثل 12.5 نستخدم:
كتب المستخدم «محمد أحمد». ماذا تقرأ input.next()؟
ماذا يحدث إذا كتب المستخدم «عشرون» عند nextInt()؟
الخلاصة
- استورد Scanner، ثم أنشئ كائنًا:
Scanner input = new Scanner(System.in); - اقرأ بحسب النوع: nextInt للأعداد الصحيحة، nextDouble للعشرية، nextLine للنصوص.
- اطبع رسالة توضيحية قبل كل قراءة، وطابِق نوع الدالة مع نوع المتغيّر.
تحدٍّ برمجي: حاسبة المتوسط
متوسطاقرأ عددين صحيحين من المستخدم، واطبع مجموعهما ومتوسطهما.
- استورد Scanner وأنشئ كائنًا منه.
- اطبع رسالة توضيحية قبل كل قراءة.
- المتوسط عدد عشري: 17.5 لا 17.
ابدأ من هذا الكود، واضغط ▶ شغّل هنا لتكتب حلّك وتجرّبه مباشرة:
import java.util.Scanner; public class Average{ public static void main(String[] args) { Scanner input = new Scanner(System.in); // اقرأ العددين ثم اطبع المجموع والمتوسط }}
مثال تشغيل بالمدخلات: 10 ثم 25
💡 تلميح 1
💡 تلميح 2
حاول بنفسك أولًا؛ للمسألة أكثر من حلّ صحيح.
import java.util.Scanner; public class Average{ public static void main(String[] args) { Scanner input = new Scanner(System.in); System.out.print("أدخل العدد الأول: "); int a = input.nextInt(); System.out.print("أدخل العدد الثاني: "); int b = input.nextInt(); int sum = a + b; System.out.println("المجموع = " + sum); System.out.println("المتوسط = " + sum / 2.0); }}
أسئلة التقييم
ورقة العمل: القراءة من لوحة المفاتيح. إجاباتك تُحفظ تلقائيًّا على هذا الجهاز؛ أجب ثم اضغط «صحّح ورقتي».
1السؤال الأول: اختر الإجابة الصحيحة
1) الفئة المستخدمة للقراءة من لوحة المفاتيح هي:
2) لقراءة عدد صحيح نستخدم الدالة:
3) نستورد Scanner بكتابة:
4) لقراءة سطر كامل مع المسافات نستخدم:
2السؤال الثاني: صح أم خطأ
3السؤال الثالث: أكمل الفراغات
1) ننشئ الكائن: Scanner input = Scanner(System.in);
💡 الكلمة التي تُنشئ كائنًا جديدًا.
2) لقراءة عدد صحيح نكتب: input. ;
💡 next ثم نوع العدد الصحيح.
3) لقراءة كلمة واحدة نكتب: input. ;
💡 دالة قراءة كلمة واحدة، بلا Int ولا Line.
4) الفئة Scanner في الحزمة java.util وتحتاج إلى .
💡 ما الذي نكتبه في أعلى الملف؟
5) نطبع رسالة قبل القراءة.
💡 رسالة تشرح للمستخدم ماذا يُدخل.
4السؤال الرابع: التوصيل
طابِق كل عنصر في العمود (أ) بما يناسبه في العمود (ب):
- 1) nextInt()
- 2) nextDouble()
- 3) next()
- 4) nextLine()
- 5) System.in
- أ. سطر كامل مع المسافات.
- ب. عدد صحيح.
- ج. عدد عشري.
- د. مصدر الإدخال (لوحة المفاتيح).
- هـ. كلمة واحدة.
5السؤال الخامس: أسئلة عملية
1) رتّب خطوات القراءة (1 - 3):
- قراءة القيمة وتخزينها.
- استيراد الفئة Scanner.
- إنشاء كائن Scanner.
2) اكتب سطرًا ينشئ كائن Scanner باسم input:
Scanner input = new Scanner(System.in);3) صحّح: لقراءة رقم كُتب
int age = input.nextLine();int age = input.nextInt();