الإسناد والإدخال
مُقدَّم| English | المعنى |
|---|---|
| assignment statement/əˈsaɪnmənt ˈsteɪtmənt/ | جملة الإسناد |
جملة الإسناد
- جملة الإسناد تضع قيمة داخل متغير:
x = 5; - الرمز المفرد
=يعني "تخزين في"، وليس "يساوي". - جافا تحسب الجانب الأيمن أولاً، ثم تخزن النتيجة في متغير الجانب الأيسر.
count = count + 1;يقرأ القيمة القديمة للـcount، ويضيف1، وتخزن النتيجة مجدداً.
تدفق من اليمين إلى اليسار
- اعتبر
=كسهم يشير إلى اليسار:total ← price * qty. - يجب أن يكون المتغير على اليسار مُعرَّفاً مسبقاً (بنوع معين).
- إسناد لاحق يستبدل القيمة القديمة — الصندوق يحتفظ فقط بالأحدث.
- يمكنك تعريف وتعيين في سطر واحد:
int x = 5;
قراءة الإدخال مع Scanner
- لقراءة إدخال المستخدم، تستخدم جافا كائناً
Scannerمرتبطاً بـSystem.in. Scanner sc = new Scanner(System.in);ينشئه.sc.nextInt()يقرأ ⟨int⟩؛sc.nextDouble()⟨double⟩؛sc.next()كلمةً واحدةً.- احفظ ما قرأته في متغير:
int age = sc.nextInt();
مطابقة طريقة القراءة مع النوع
- استخدم طريقة القراءة التي تطابق النوع المتوقع.
nextInt()للأعداد الصحيحة،nextDouble()للأعداد العشرية،nextLine()لسطر كامل.- عدم التطابق (مثل استخدام
nextInt()على النص "hello") يسبب خطأ وقت التشغيل. - اقرأ في متغير ذو نوع صحيح حتى يعمل باقي الكود.
= إسناد وليس مساواة — ويتدفق من اليمين إلى اليسار. x = x + 1 ليس تناقضاً؛ بل يحسب x + 1 ويخزن النتيجة في x. (اختبار المساواة لاحقاً يستخدم ==، وهو معامل مختلف.) مع Scanner، طابق الطريقة مع النوع: nextInt() يقرأ عدداً صحيحاً، وقراءة غير عدد يسبب خطأ وقت التشغيل.
قراءة وتحديث درجة:
int score = sc.nextInt();→scoreتحصل على أي رقم كتبه المستخدم.score = score + 10;→ الجانب الأيمنscore + 10يُحسب، ثم يُخزن مجدداً.- إذا كتبت المستخدم
40، فإنscoreأصبحت الآن50.
جملة الإسناد x = value; تحسب الجانب الأيمن أولاً، ثم تخزنه في المتغير الأيسر (= هي "تخزين في"، وليس مساواة). اقرأ الإدخال باستخدام Scanner: nextInt()، nextDouble()، أو next()/nextLine() — طابق الطريقة مع النوع المتوقع.
الجهة اليمنى أولاً، ثم التخزين
كل إسناد يقيّم الجهة اليمنى، ثم يستبدل الخانة.
في جافا، الرمز = الأحادي يعني...
Difficulty 1/5 · 100 coins + a small bonus on first completion today
= هو إسناد؛ == يختبر المساواة.
score يساوي 40، ثم score = score + 10; تم التنفيذ. ما قيمة score الآن؟
Difficulty 2/5 · 140 coins + a small bonus on first completion today
الجهة اليمنى 40+10 = 50 تُخزن مرة أخرى في score.
أي طريقة Scanner تقرأ عدداً صحيحاً كاملاً؟
Difficulty 1/5 · 100 coins + a small bonus on first completion today
nextInt() يقرأ int؛ nextDouble() يقرأ عشرياً.
جافا تقيّم الجهة اليمنى من الإسناد قبل تخزينها في المتغير الأيسر.
Difficulty 1/5 · 100 coins + a small bonus on first completion today
الجهة اليمنى أولاً، ثم التخزين — هكذا تعمل x = x + 1.
استدعاء nextInt() عندما يكتب المستخدم كلمة 'hello' يسبب خطأ وقت التشغيل.
Difficulty 1/5 · 100 coins + a small bonus on first completion today
الطريقة تتوقع int؛ النص لا يتوافق معها.