العمليات والقراءة من لوحة المفاتيح
الرموز أدوات نُجري بها العمليات على القيم والمتغيّرات: حساب، ومقارنة، ومنطق، ودمج نصوص.
- تستخدم العمليات الحسابية والمقارنة والمنطقية.
- تطبّق أولويات التنفيذ وتستخدم الأقواس.
- تدمج النصوص بالرمز +.
- تقرأ قيمًا من لوحة المفاتيح باستخدام Scanner.
١الرموز الحسابية
| الرمز | العملية | مثال | الناتج |
|---|---|---|---|
+ | جمع | 5 + 2 | 7 |
- | طرح | 5 - 2 | 3 |
* | ضرب | 5 * 2 | 10 |
/ | قسمة | 7 / 2 | 3 |
% | باقي القسمة | 7 % 2 | 1 |
غيّر الأرقام والنوع، ولاحظ كيف تتغيّر نتيجة / بين int و double.
٢الزيادة والنقصان: ++ و --
int x = 5;x++; // أصبحت 6 (تعادل x = x + 1;)x--; // رجعت 5 (تعادل x = x - 1;)System.out.println(x);
٣رموز المقارنة
نتيجتها دائمًا true أو false (boolean).
if (x = 5)if (x == 5)علامة = للإسناد (وضع قيمة)، و == للمقارنة (هل الطرفان متساويان؟).
٤الرموز المنطقية
تربط بين شرطين، ونتيجتها boolean.
اضغط لتبديل قيمة A أو B.
| التعبير | النتيجة | القاعدة |
|---|
int age = 20;System.out.println(age >= 18 && age < 60); // trueSystem.out.println(age < 12 || age > 65); // falseSystem.out.println(!(age == 20)); // false
٥رمز + مع النصوص: الدمج
| حول الرمز + | ماذا يفعل؟ | مثال |
|---|---|---|
| رقمان | جمع حسابي | 5 + 2 → 7 |
| نصّ (String) في أحد الطرفين | دمج: يلصق القيم في نصّ واحد | "Age: " + 20 → "Age: 20" |
لماذا يطبع هذا 523 وليس 10؟
System.out.println("5" + 2 + 3);System.out.println("5 + 2 = " + 5 + 2);// 5 + 2 = 52
System.out.println("5 + 2 = " + (5 + 2));// 5 + 2 = 7
ضع الأقواس حول العملية الحسابية لتُحسب قبل الدمج.
٦أولويات التنفيذ
عند اجتماع عدّة عمليات تُنفَّذ من الأعلى أولويةً إلى الأدنى:
| الترتيب | العمليات | الرموز |
|---|---|---|
| ١ | الأقواس | ( ) |
| ٢ | الزيادة والنقصان والنفي | ++ -- ! |
| ٣ | الضرب والقسمة والباقي | * / % |
| ٤ | الجمع والطرح | + - |
| ٥ | المقارنات | < > <= >= == != |
| ٦ | المنطقية (&& قبل ||) | && || |
| ٧ | الإسناد | = |
int r1 = 2 + 3 * 4;int r2 = (2 + 3) * 4;
٧مثال شامل
public class Operators{ public static void main(String[] args) { int a = 10, b = 3; System.out.println(a + b); // 13 System.out.println(a / b); // 3 (قسمة صحيحة) System.out.println(a % b); // 1 (الباقي) a++; // a أصبحت 11 System.out.println(a); // 11 System.out.println(a > b && b > 0); // true System.out.println(!(a == b)); // true System.out.println(2 + 3 * 4); // 14 System.out.println("a + b = " + (a + b)); // a + b = 14 }}
٨ثلاث خطوات للقراءة
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)تضمن الجمع قبل الدمج مع النصّ.
توقّع وتحقّق
ما ناتج 17 % 5؟
ما ناتج 9 / 2 إذا كان الرقمان int؟
تأمل الكود التالي،
System.out.println("Total: " + 5 + 5);ماذا سيكون الناتج عند تنفيذه؟
ما قيمة 10 - 2 * 3؟
إذا كان age = 15 فما قيمة age >= 18 || age == 15؟
أي سطر يُكتب في أعلى الملف لاستخدام Scanner؟
لقراءة سعر مثل 12.5 نستخدم:
كتب المستخدم «محمد أحمد». ماذا تقرأ input.next()؟
ماذا يحدث إذا كتب المستخدم «عشرون» عند nextInt()؟
الخلاصة
- العمليات الحسابية: + - * / % ، والقسمة بين عددين صحيحين تحذف الكسر.
- المقارنة تنتج true أو false، والمنطقية && || ! تربط الشروط.
- الأقواس تغيّر أولوية التنفيذ.
- Scanner يقرأ من لوحة المفاتيح: nextInt و nextDouble و nextLine و next.
- لا تنسَ import java.util.Scanner;
تحدٍّ برمجي: حاسبة المتوسط
متوسطاقرأ عددين صحيحين من المستخدم، واطبع مجموعهما ومتوسطهما.
- استورد 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); }}