الوحدة 2: البيانات والعمليات · الموضوع 6 من 13
الموضوع 6

القراءة من لوحة المفاتيح

حتى الآن كنّا نطبع فقط. الآن يصبح البرنامج قادرًا على قراءة ما يكتبه المستخدم.

ScannernextInt()nextLine() اكتب عمرك: 20
بعد هذا الدرس ستستطيع أن:
  • استيراد كلاس Scanner وإنشاء كائن منه.
  • قراءة عدد صحيح أو عشري أو نصّ بالدالة المناسبة.
  • كتابة رسالة توضيحية قبل كل قراءة.
  • تجنّب خطأ عدم تطابق نوع الإدخال.

١ثلاث خطوات للقراءة

١. استورد الكلاسفي أعلى الملف
snippet
import java.util.Scanner;
٢. أنشئ كائن Scannerداخل main
snippet
Scanner input = new Scanner(System.in);
٣. اقرأ وخزّنبحسب نوع القيمة
snippet
int age = input.nextInt();

٢دوال القراءة

الدالةتقرأتُخزَّن في
input.nextInt()عددًا صحيحًاint
input.nextDouble()عددًا عشريًّاdouble
input.next()كلمة واحدة (حتى أول مسافة)String
input.nextLine()سطرًا كاملًا مع المسافاتString
next() أم nextLine()؟
input.next()
input.nextLine()

٣مثال شامل: شغّله بنفسك

Input.java
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));    }}
محاكي التشغيل

اكتب ما سيُدخله المستخدم ثم شغّل. الإدخال يظهر في الناتج بخط مائل.

الناتج

٤نقاط مهمة

توقّع وتحقّق

أجب قبل أن تنظر إلى الشرح. التصحيح فوري، وإجاباتك تُحفظ.

أي سطر يُكتب في أعلى الملف لاستخدام Scanner؟

لقراءة سعر مثل 12.5 نستخدم:

كتب المستخدم «محمد أحمد». ماذا تقرأ input.next()؟

next تقرأ كلمة واحدة حتى أول مسافة.

ماذا يحدث إذا كتب المستخدم «عشرون» عند nextInt()؟

InputMismatchException: النوع غير مطابق.

الخلاصة

تحدٍّ برمجي: حاسبة المتوسط

متوسط

اقرأ عددين صحيحين من المستخدم، واطبع مجموعهما ومتوسطهما.

المطلوب:
  • استورد Scanner وأنشئ كائنًا منه.
  • اطبع رسالة توضيحية قبل كل قراءة.
  • المتوسط عدد عشري: 17.5 لا 17.

ابدأ من هذا الكود، واضغط ▶ شغّل هنا لتكتب حلّك وتجرّبه مباشرة:

Average.java
import java.util.Scanner; public class Average{    public static void main(String[] args)    {        Scanner input = new Scanner(System.in);         // اقرأ العددين ثم اطبع المجموع والمتوسط     }}

مثال تشغيل بالمدخلات: 10 ثم 25

Output – المطلوب×
أدخل العدد الأول: 10
أدخل العدد الثاني: 25
المجموع = 35
المتوسط = 17.5
💡 تلميح 1
int a = input.nextInt();
💡 تلميح 2
لتجنّب القسمة الصحيحة اقسم على 2.0 بدل 2.

حاول بنفسك أولًا؛ للمسألة أكثر من حلّ صحيح.

Average.java
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السؤال الثاني: صح أم خطأ

1) System.in تعني أنّ مصدر الإدخال هو لوحة المفاتيح.
الصواب: صح
2) nextInt تقرأ عددًا عشريًّا.
الصواب: خطأ
3) يجب استيراد Scanner قبل استخدامه.
الصواب: صح
4) يُفضّل طباعة رسالة توضيحية قبل القراءة.
الصواب: صح
5) إدخال نصّ مكان رقم مع nextInt لا يسبّب أي خطأ.
الصواب: خطأ

3السؤال الثالث: أكمل الفراغات

1) ننشئ الكائن: Scanner input = Scanner(System.in);

💡 الكلمة التي تُنشئ كائنًا جديدًا.

الإجابة: new

2) لقراءة عدد صحيح نكتب: input. ;

💡 next ثم نوع العدد الصحيح.

الإجابة: nextInt()

3) لقراءة كلمة واحدة نكتب: input. ;

💡 دالة قراءة كلمة واحدة، بلا Int ولا Line.

الإجابة: next()

4) الفئة Scanner في الحزمة java.util وتحتاج إلى .

💡 ما الذي نكتبه في أعلى الملف؟

الإجابة: استيراد

5) نطبع رسالة قبل القراءة.

💡 رسالة تشرح للمستخدم ماذا يُدخل.

الإجابة: توضيحية

4السؤال الرابع: التوصيل

طابِق كل عنصر في العمود (أ) بما يناسبه في العمود (ب):

  1. 1) nextInt()
  2. 2) nextDouble()
  3. 3) next()
  4. 4) nextLine()
  5. 5) System.in
  1. أ. سطر كامل مع المسافات.
  2. ب. عدد صحيح.
  3. ج. عدد عشري.
  4. د. مصدر الإدخال (لوحة المفاتيح).
  5. هـ. كلمة واحدة.
المفتاح: (1) ب (2) ج (3) هـ (4) أ (5) د

5السؤال الخامس: أسئلة عملية

1) رتّب خطوات القراءة (1 - 3):

  1. قراءة القيمة وتخزينها.
  2. استيراد الفئة Scanner.
  3. إنشاء كائن Scanner.
الترتيب الصحيح: 3، 1، 2

2) اكتب سطرًا ينشئ كائن Scanner باسم input:

إجابة نموذجية:
snippet
Scanner input = new Scanner(System.in);

3) صحّح: لقراءة رقم كُتب

snippet
int age = input.nextLine();
إجابة نموذجية:
snippet
int age = input.nextInt();
أجب عن الأسئلة ثم اضغط «صحّح ورقتي».
أنهيت وحدة «البيانات والعمليات»ثبّت ما تعلّمته بمراجعة تراكمية تخلط مواضيع الوحدة.ابدأ المراجعة ←