0% found this document useful (0 votes)
24 views47 pages

04 IT Java Programming Lec4

Java program lecture 4 in yemen information technology

Uploaded by

akrmalslami88
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
24 views47 pages

04 IT Java Programming Lec4

Java program lecture 4 in yemen information technology

Uploaded by

akrmalslami88
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 47

‫جامعة عدن‬

‫كلية الهندسة‬
‫قسم تكنولوجيا المعلومات‬

‫لغة البرمجة جافا‬

‫د‪ \.‬وضاح أحمد منصر‬


‫خطة الدورة‬
‫محاضرات‪#‬‬
‫مقدمة في برمجة جافا ‪1-‬‬
‫‪ -2‬العناصر األساسية للغة جافا‬
‫مقدمة إلى الكائنات واإلدخال ‪ /‬اإلخراج ‪3-‬‬
‫‪ -4‬هياكل التحكم األول‪ :‬االختيار‬
‫هياكل التحكم ‪ :2‬التكرار ‪5-‬‬
‫‪ -6‬الطرق التي يحددها المستخدم‬
‫‪ -7‬فئات محددة من قبل المستخدم‬
‫‪ -8‬المصفوفات‬
‫الوراثة وتعدد األشكال ‪9-‬‬
‫‪2‬‬
‫المحاضرة الثانية‪ :‬هياكل التحكم األول‪ :‬االختيار‬

‫هياكل التحكم األول‪ :‬االختيار‬

‫‪Java Programming Language‬‬ ‫‪3‬االنزالق‬


‫الخطوط العريضة‬
‫هياكل التحكم في البرنامج ‪‬‬
‫العوامل العالقية ‪‬‬
‫نوع البيانات المنطقية ‪‬‬
‫العوامل المنطقية ‪‬‬ ‫الجزء‬
‫أسبقية المشغلين ‪‬‬ ‫​األول‬
‫تقييم ماس كهربائى ‪‬‬
‫اختيار في اتجاه واحد ( إذا كان البيان) ‪‬‬
‫اختيار ثنائي االتجاه ( إذا‪ ...‬عبارات أخرى) ‪‬‬
‫الجزء‬
‫‪.‬البيانات المركبة (كتلة) ‪‬‬
‫​الثاني‬
‫تحديدات متعددة ( متداخلة إذا & إذا… وإال ) ‪‬‬
‫العامل الشرطي ‪‬‬
‫هياكل التبديل ‪‬‬
‫‪Java Programming Language‬‬ ‫‪4‬االنزالق‬
‫جمل التحكم‬
‫‪.‬هياكل التحكم قرارات بشأن تدفق البرنامج بناًء على معلمات معينة‬
‫‪:‬هياكل التحكم هي من هذه األنواع الثالثة‬
‫في تسلسل ‪‬‬
‫أو اختيار‪ ،‬وهو ما يسمى أيًض ا بالفرع ‪‬‬ ‫‪1‬‬ ‫‪ .‬عن طريق إجراء تحديد‬
‫البيان‬
‫السيطرة‬
‫نقل التنفيذ‬
‫باستخدام بنية ‪‬‬ ‫من خالل التكرار ‪ ،‬يتم تنفيذ العبارة مراًر ا وتكراًر ا‬
‫المتسلسل‬
‫تسمى الحلقة‬
‫البيان ‪2‬‬

‫‪Java Programming Language‬‬ ‫‪5‬االنزالق‬


‫تدفق التنفيذ‬

Java Programming Language ‫االنزالق‬6


‫العوامل العالقية‬
‫العوامل العالئقية إلجراء مقارنات في برنامج جافا‬

‫وصف‬ ‫العاملين‬
‫يساوي‬ ‫==‬
‫ال يساوي‬ ‫=!‬
‫أقل من‬ ‫<‬
‫اقل او يساوي‬ ‫=<‬
‫أكثر من‬ ‫>‬
‫أكبر من أو يساوي‬ ‫=>‬
‫‪Java Programming Language‬‬ ‫‪7‬االنزالق‬
‫نوع البيانات المنطقية‬

‫أو ‪ true‬نوع البيانات المنطقية عن متغير له قيمة إما‬


‫‪false .‬‬
‫منطقية س = ( ‪ // ;) 5 == 10‬خطأ شنيع ‪‬‬
‫منطقية س = (‪)5 =! 10‬؛ ‪ //‬حقيقي ‪‬‬
‫منطقية س = ( ‪ // ; ) 5 < 10‬خطأ شنيع ‪‬‬
‫منطقية س = ( ‪ // ; ) 10 =< 10‬حقيقي ‪‬‬
‫منطقية س = ( ‪ // ; ) 10 > 10‬خطأ شنيع ‪‬‬
‫منطقية س = ( ‪ // ; ) 5 => 10‬حقيقي ‪‬‬

‫‪Java Programming Language‬‬ ‫‪8‬االنزالق‬


‫العوامل المنطقية‬
‫‪.‬العوامل المنطقية إلنشاء تعبير منطقي مركب‪‬‬

‫وصف‬ ‫العاملين‬
‫ال‬ ‫!‬
‫و‬ ‫&&‬
‫أو‬ ‫||‬
‫حصري أو‬ ‫^‬

‫‪Java Programming Language‬‬ ‫‪9‬االنزالق‬


‫العوامل المنطقية (تابع)‬
‫‪.‬بعكس قيمة الحقيقة لمعامله )!( ‪ NOT‬عامل التشغيل ‪‬‬
‫إذا تم تقييم التعبير إلى صحيح ‪ ،‬فسيتم تقييم نفيه إلى خطأ ‪ ،‬والعكس ‪‬‬
‫‪.‬صحيح‬

‫)تعبير(!‬ ‫تعبير‬
‫خطأ شنيع‬ ‫حقيقي‬
‫حقيقي‬ ‫خطأ شنيع‬

‫‪Java Programming Language‬‬ ‫‪10‬االنزالق‬


‫العوامل المنطقية (تابع)‬
‫يتم تقييمه )&&( ‪ AND‬يوضح جدول الحقيقة التالي أن عامل التشغيل ‪‬‬
‫‪ .‬على أنه صحيح فقط عندما يكون كال المعاملين الفرديين صحيحين‬

‫التعبير(‪ &&)1‬التعبير(‪)2‬‬ ‫التعبير(‪)2‬‬ ‫التعبير(‪)1‬‬


‫حقيقي‬ ‫حقيقي‬ ‫حقيقي‬
‫خطأ شنيع‬ ‫خطأ شنيع‬ ‫حقيقي‬
‫خطأ شنيع‬ ‫حقيقي‬ ‫خطأ شنيع‬
‫خطأ شنيع‬ ‫خطأ شنيع‬ ‫خطأ شنيع‬

‫‪Java Programming Language‬‬ ‫‪11‬االنزالق‬


‫العوامل المنطقية (تابع)‬
‫يتم تقييمه على )||( ‪ OR‬يوضح جدول الحقيقة التالي أن عامل التشغيل ‪‬‬
‫‪ .‬أنه صحيح إال عندما يكون كال المعاملين خطأ‬

‫تعبير(‪ ||)1‬التعبير(‪)2‬‬ ‫التعبير(‪)2‬‬ ‫التعبير(‪)1‬‬


‫حقيقي‬ ‫حقيقي‬ ‫حقيقي‬
‫حقيقي‬ ‫خطأ شنيع‬ ‫حقيقي‬
‫حقيقي‬ ‫حقيقي‬ ‫خطأ شنيع‬
‫خطأ شنيع‬ ‫خطأ شنيع‬ ‫خطأ شنيع‬

‫‪Java Programming Language‬‬ ‫‪12‬االنزالق‬


‫العوامل المنطقية (تابع)‬
‫يوضح جدول الحقيقة التالي أن المشغل الحصري أو (^)‪ .‬يقيم إلى صحيح ‪‬‬
‫‪.‬إذا وفقط إذا كان للمعاملين قيم مختلفة‬

‫التعبير(‪ ^)1‬التعبير(‪)2‬‬ ‫التعبير(‪)2‬‬ ‫التعبير(‪)1‬‬


‫خطأ شنيع‬ ‫خطأ شنيع‬ ‫خطأ شنيع‬
‫حقيقي‬ ‫حقيقي‬ ‫خطأ شنيع‬
‫حقيقي‬ ‫خطأ شنيع‬ ‫حقيقي‬
‫خطأ شنيع‬ ‫حقيقي‬ ‫حقيقي‬

‫‪Java Programming Language‬‬ ‫‪13‬االنزالق‬


‫العوامل المنطقية (تابع)‬
‫كتابة برنامج جافا للتحقق مما إذا كان الرقم قابل للقسمة ‪‬‬
‫بواسطة ‪ 2‬و ‪3‬‬
‫بحلول ‪ 2‬أو ‪3‬‬ ‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪ .‬بمقدار ‪ 2‬أو ‪ 3‬ولكن ليس كليهما‪‬‬
‫‪‬‬

‫‪12‬‬ ‫‪9‬‬

‫‪Java Programming Language‬‬ ‫‪14‬االنزالق‬


‫تطبيق جافا‪ :‬العوامل المنطقية‬
‫;*‪ java.util .‬يستورد‬
‫{ عام فصل العوامل المنطقية‬
‫{ عام ثابتة باطلة الرئيسية (سلسلة [] الحجج )‬
‫إنشاء الماسح الضوئي ‪//‬‬
‫; ) ‪Scanner input = new Scanner(System.in‬‬
‫تلقي المدخالت ‪//‬‬
‫;) "‪:‬أدخل عدًدا صحيًح ا" ( ‪ .print‬نظام‪ .‬خارج‬
‫؛)( ‪ .nextInt‬كثافة العمليات الرقم = اإلدخال‬

‫إذا ( الرقم ‪ && 0 == 2 %‬الرقم ‪)0 == 3 %‬‬


‫;) "‪.‬يقبل القسمة على ‪ 2‬و ‪. out .println ( number + " 3‬نظام‬
‫إذا ( الرقم ‪ || 0 == 2 %‬الرقم ‪)0 == 3 %‬‬
‫;) "‪.‬يقبل القسمة على ‪ 2‬أو ‪. out .println ( number + " 3‬نظام‬
‫إذا ( الرقم ‪ ^ 0 == 2 %‬الرقم ‪)0 == 3 %‬‬
‫;) "‪.‬رقم ‪ " +‬يقبل القسمة على ‪ 2‬أو ‪ ،3‬ولكن ليس كليهما ( ‪ .println‬نظام‪ .‬خارج‬
‫}}‬

‫‪Java Programming Language‬‬ ‫‪15‬االنزالق‬


‫تطبيق جافا‪ :‬العوامل المنطقية_‪1‬‬
‫؛ ‪ java.util.Scanner‬يستورد‬
‫{ عام فصل العوامل المنطقية_‪1‬‬
‫{ عام ثابتة فارغ الرئيسي ( سلسلة [] الحجج )‬
‫إنشاء الماسح الضوئي ‪//‬‬
‫;) ‪ ( System . in‬الماسح الضوئي اإلدخال = جديد الماسح الضوئي‬

‫نظام ‪ .‬خارج ‪ .‬طباعة ( "الرجاء إدخال رقم صحيح‪) ":‬؛‬


‫;)( ‪ . nextInt‬كثافة العمليات س = اإلدخال‬

‫;) ‪ = ( x % 2 == 0 && x % 3 == 0‬منطقية رقم‬


‫"عند تقسيمه" ‪" + x +‬قيمة الرقم" ( ‪ . println‬نظام ‪ .‬خارج‬
‫;) ‪" + number‬بواسطة ‪ 2‬و ‪ 3‬هو" ‪+‬‬
‫;الرقم = ( س ‪ || 0 == 2 %‬س ‪) 0 == 3 %‬‬
‫"عند تقسيمه" ‪" + x +‬قيمة الرقم" ( ‪ . println‬نظام ‪ .‬خارج‬
‫;) ‪" + number‬بواسطة ‪ 2‬أو ‪ 3‬هو" ‪+‬‬
‫;الرقم = ( س ‪ ^ 0 == 2 %‬س ‪) 0 == 3 %‬‬
‫"عند تقسيمه" ‪" + x +‬قيمة الرقم" ( ‪ . println‬نظام ‪ .‬خارج‬
‫}} ;) ‪" + number‬بواسطة ‪ 2‬و ‪ 3‬ولكن ليس كالهما" ‪+‬‬
‫‪Java Programming Language‬‬ ‫‪16‬االنزالق‬
‫أسبقية المشغلين‬
‫األولوية‬ ‫العاملين‬
‫األول (األعلى)‬ ‫عوامل التشغيل( ‪!، +، -‬‬
‫)األحادية‬
‫ثانية‬ ‫‪*، /،٪‬‬
‫ثالث‬ ‫‪+، -‬‬
‫الرابع‬ ‫<‪=> ،> ،=< ،‬‬
‫الخامس‬ ‫=! ‪==،‬‬
‫السادس‬ ‫&&‬
‫سابعا‬ ‫||‬
‫األخير (األدنى)‬
‫‪Java Programming Language‬‬
‫)مشغل المهمة( =‬ ‫‪17‬االنزالق‬
‫أسبقية المشغلين (تابع)‬

‫‪(17 < 4 * 3 + 5) || (8 * 2 == 4 * 4) && !(3 + 3‬‬


‫)‪== 6‬‬

‫)‪(17 < 12 + 5) || (16 == 16) && !(6 == 6‬‬

‫حقيقي && !( حقيقي ) || )‪(١٧ < ١٧‬‬

‫خطأ شنيع || حقيقي && خطأ شنيع‬

‫خطأ شنيع || خطأ شنيع‬

‫خطأ شنيع‬
‫‪Java Programming Language‬‬ ‫‪18‬االنزالق‬
‫تقييم ماس كهربائى‬
‫تقييم الدائرة القصيرة‪ :‬عملية يقوم فيها الكمبيوتر بتقييم تعبير منطقي من‬
‫اليسار إلى اليمين ويتوقف بمجرد معرفة قيمة التعبير‬

‫‪:‬مثال‬

‫العمر = ‪ 25‬؛‬ ‫حقيقي‬


‫شار الصف = 'ب ' ؛‬

‫؛ ‪ //‬حقيقي)س == ‪) || (5‬العمر >= ‪( 21‬‬


‫خطأ شنيع ‪') && (x >= 7); //‬الصف == 'أ (‬

‫خطأ‬
‫شنيع‬
‫‪Java Programming Language‬‬ ‫‪19‬االنزالق‬
‫تطبيق جافا‪ :‬السنة الكبيسة‬

‫اكتب برنامًج ا يطلب من المستخدم إدخال سنة ثم •‬


‫‪.‬التحقق مما إذا كانت سنة اإلدخال سنة كبيسة أم ال‬
‫السنة الكبيسة هي السنة التي يضاف فيها يوم •‬
‫‪.‬إضافي إلى نهاية أقصر شهر (فبراير)‬
‫تتكون السنة الكبيسة من ‪ 366‬يوًم ا بدًال من ‪ 365‬يوًم ا •‬
‫‪.‬المعتادة‪ ،‬وتحدث كل أربع سنوات تقريًبا‬

‫‪Java Programming Language‬‬ ‫‪20‬االنزالق‬


‫السنة الكبيسة (تابع) ‪ Java:‬تطبيق‬

‫لتحديد ما إذا كانت السنة سنة كبيسة أم ال‪ ،‬علينا •‬


‫‪:‬التحقق مما يلي‬
‫إذا كانت السنة قابلة للقسمة بالتساوي على ‪ 4‬ولكن ليس‪‬‬
‫‪.‬على ‪( 100‬فهي سنة كبيسة )‬
‫إذا كان من الممكن أيًض ا تقسيم السنة بالتساوي على ‪100‬‬
‫‪ ،‬فهي ليست سنة كبيسة ‪ ،‬إال إذا كانت السنة أيًض ا قابلة‬
‫‪ .‬للقسمة بالتساوي على ‪ ، 400‬فهي سنة كبيسة‬

‫‪Java Programming Language‬‬ ‫‪21‬االنزالق‬


‫السنة الكبيسة (تابع) ‪ Java:‬تطبيق‬

‫الخطوة ‪ :1‬تحقق مما إذا كانت السنة قابلة للقسمة •‬


‫‪ .‬على ‪ 4‬بالتساوي‬
‫الخطوة ‪ :2‬تحقق مما إذا كانت السنة قابلة للقسمة •‬
‫‪.‬بالتساوي على ‪ 4‬وليس على ‪100‬‬
‫الخطوة ‪ :3‬تحقق مما إذا كانت السنة قابلة للقسمة •‬
‫بالتساوي على ‪ ،4‬ويمكن أيًض ا تقسيمها بالتساوي‬
‫على ‪ ،100‬إذا كان األمر كذلك ‪ ،‬تحقق مما إذا كانت‬
‫السنة أيًض ا قابلة للقسمة بالتساوي على ‪400‬‬
‫‪ .‬وبخالف ذلك ‪ ،‬فإن السنة ليست سنة كبيسة •‬
‫‪Java Programming Language‬‬ ‫‪22‬االنزالق‬
‫السنة الكبيسة (تابع) ‪ Java:‬تطبيق‬

‫‪1‬‬ ‫تحقق مما إذا كانت السنة قابلة للقسمة‬


‫بالتساوي على ‪4‬‬ ‫حقيقي‬
‫خطأ‬
‫السنة الكبيسة تقبل القسمة على ‪// 4‬‬ ‫شنيع‬
‫منطقية سنة كبيسة = ( السنة ‪) 0 == 4 %‬‬

‫سنة‬
‫ليستسنة‬
‫إنها إنها‬
‫كبيسة‬
‫كبيسة‬

‫‪Java Programming Language‬‬ ‫‪23‬االنزالق‬


‫السنة الكبيسة (تابع) ‪ Java:‬تطبيق‬
‫‪2‬‬
‫تحقق مما إذا كانت السنة قابلة للقسمة بالتساوي على‬
‫‪ 4‬وليس على ‪100‬‬
‫حقيقي‬
‫حقيقي‬ ‫حقيقي‬
‫خطأ‬
‫شنيع‬
‫السنة الكبيسة تقبل القسمة على ‪ 4‬وليس على ‪// 100‬‬
‫منطقية سنة كبيسة = ( السنة ‪ && 0 == 4 %‬السنة ‪100 %‬‬
‫!= ‪) 0‬‬

‫سنة‬
‫سنة‬ ‫إنها إنها‬
‫ليست‬
‫كبيسة‬
‫كبيسة‬
‫‪Java Programming Language‬‬ ‫‪24‬االنزالق‬
‫السنة الكبيسة (تابع) ‪ Java:‬تطبيق‬
‫‪3‬‬ ‫تحقق مما إذا كانت السنة قابلة للقسمة بالتساوي على ‪،4‬‬
‫ويمكن أيًض ا قسمتها بالتساوي على ‪ ،100‬إذا كان األمر‬
‫كذلك ‪ ،‬فيجب التحقق مما إذا كانت السنة أيًض ا قابلة للقسمة‬
‫بالتساوي على ‪400‬‬
‫حقيقي‬ ‫خطأ‬
‫شنيع‬
‫السنة الكبيسة قابلة للقسمة على ‪ 4‬ولكن ليس على ‪// 100‬‬ ‫خطأ‬
‫حقيقي‬
‫‪ //‬أو قابلة للقسمة على ‪400‬‬ ‫شنيع‬
‫منطقية سنة كبيسة = ( السنة ‪ && 0 == 4 %‬السنة ‪100 %‬‬
‫|| ( السنة ‪) 0 == 400 %‬‬ ‫; != ‪) 0‬‬
‫إنها سنة‬
‫ليست سنة‬ ‫إنها‬
‫كبيسة‬
‫كبيسة‬
‫‪Java Programming Language‬‬ ‫‪25‬االنزالق‬
‫السنة الكبيسة (تابع) ‪ Java:‬تطبيق‬
‫;*‪ java.util .‬يستورد‬
‫{ عام فصل سنة كبيسة‬
‫‪:‬اإلخراج (‪)1‬‬
‫الرئيسية (سلسلة [] الحجج )‬ ‫أدخلباطلة‬
‫السنة‪2020 :‬‬ ‫{ عام ثابتة‬
‫‪Scanner input = new‬‬‫‪2020‬‬‫‪Scanner(System.in‬‬
‫; )سنة كبيسة؟ حقيقي‬
‫;) "‪:‬أدخل السنة" ( ‪ .print‬نظام‪ .‬خارج‬
‫العمليات السنة = اإلدخال‬ ‫؛)( ‪: .nextInt‬كثافة‬
‫اإلخراج (‪)2‬‬
‫‪2021‬السنة سنة كبيسة ‪//‬‬
‫السنة‪ :‬كانت‬
‫أدخل مما إذا‬
‫تحقق‬
‫‪ 2021‬السنة ‪)0 =! 100 %‬‬
‫شنيع‪&& 0‬‬
‫خطأ‪== 4‬‬ ‫كبيسة؟‬
‫السنة ‪%‬‬ ‫سنة= (‬
‫منطقية السنة الكبيسة‬
‫;)السنة ‪|| ( 0 == 400 %‬‬

‫عرض النتيجة ‪//‬‬


‫;) ‪" + LeapYear‬هل هي سنة كبيسة؟" ‪. out .println ( year +‬نظام‬
‫}}‬
‫‪Java Programming Language‬‬ ‫‪26‬االنزالق‬
‫اختيار‬

‫•‬ ‫اختيار في اتجاه واحد‬


‫•‬ ‫اختيار في اتجاهين‬
‫•‬ ‫‪.‬البيانات المركبة (كتلة)‬
‫•‬ ‫تحديدات متعددة (متداخلة إذا)‬
‫•‬ ‫العامل الشرطي‬
‫•‬ ‫هياكل التبديل‬

‫‪Java Programming Language‬‬ ‫‪27‬االنزالق‬


‫اختيار في اتجاه واحد‬
‫إذا تم تقييم التعبير ‪ if‬تختبر الشرط‪ .‬يتم تنفيذ كتلة ‪ Java if‬عبارة ‪ Java if:‬عبارة ‪‬‬
‫‪ true .‬المنطقي إلى‬

‫‪:‬بناء الجملة‬
‫إذا ( منطقية ‪ -‬التعبير)‬
‫إفادة‬ ‫تعبير منطقي‬ ‫خطأ‬
‫شنيع‬
‫‪:‬مثال‬ ‫حقيق‬
‫؛)( ‪ . nextDouble‬نسبة مضاعفة = اإلدخال‬ ‫ي‬
‫صياغات‬
‫إذا ( نسبة مئوية >= ‪) 90‬‬
‫لقد حصلت" ( ‪System .out.println‬‬
‫؛) "‪ A‬على‬
‫‪Java Programming Language‬‬ ‫‪28‬االنزالق‬
‫االختيار في اتجاه واحد (تابع)‬
‫;*‪ java.util .‬يستورد‬
‫{ عام فصل اختيار اتجاه واحد‬
‫{ عام ثابتة باطلة الرئيسية (سلسلة [] الحجج )‬
‫‪:‬انتاج‬
‫إنشاء الماسح الضوئي ‪//‬‬
‫الرجاء إدخال الرقم‪9 :‬‬
‫; ) ‪ (System.in‬إدخال الماسح الضوئي = الماسح الضوئي الجديد‬
‫هو رقم فردي ‪9‬‬
‫;) "‪:‬الرجاء إدخال الرقم" ( ‪ .print‬نظام‪ .‬خارج‬
‫انتاج = ‪ x‬كثافة العمليات‬
‫اإلدخال‬
‫؛)( ‪: .nextInt‬‬
‫الرجاء إدخال الرقم‪10 :‬‬
‫هو عدد زوجي ‪ 10‬إذا ( س ‪)0 == 2 %‬‬
‫;) "هو رقم زوجي " ‪ .println ( x +‬نظام‪ .‬خارج‬
‫إذا ( س ‪)1 == 2 %‬‬
‫;) "هو رقم فردي " ‪ .print ( x +‬نظام‪ .‬خارج‬
‫}‬
‫}‬
‫‪Java Programming Language‬‬ ‫‪29‬االنزالق‬
‫اختيار في اتجاهين‬
‫إذا كان ‪ if‬تختبر الشرط أيًض ا‪ .‬يتم تنفيذ كتلة ‪ Java if-else‬عبارة ‪ Java if else:‬عبارة ‪‬‬
‫‪.‬التعبير المنطقي صحيًح ا وإال فسيتم تنفيذ الكتلة‬

‫‪:‬بناء الجملة‬
‫إذا ( منطقية ‪ -‬التعبير)‬
‫حقيق‬ ‫تعبير منطقي‬ ‫خطأ‬
‫>بيان‪-‬ق<‬
‫ي‬ ‫شنيع‬
‫آخر‬
‫>بيان‪-‬ق<‬
‫صياغات‬ ‫صياغات‬

‫‪Java Programming Language‬‬ ‫‪30‬االنزالق‬


‫االختيار في اتجاهين (تابع)‬

‫‪:‬مثال‬

‫؛)( ‪ . nextDouble‬المعدل التراكمي المزدوج = اإلدخال‬


‫إذا ( المعدل التراكمي >= ‪) 4.5‬‬
‫تم قبول المعدل التراكمي الخاص " ( ‪System .out.println‬‬
‫؛) " بك‬
‫آخر‬
‫عذًر ا‪ ،‬لم يتم قبول المعدل التراكمي" ( ‪System .out.println‬‬
‫؛) "الخاص بك‬

‫‪Java Programming Language‬‬ ‫‪31‬االنزالق‬


‫االختيار في اتجاهين (تابع)‬
‫;*‪ java.util .‬يستورد‬
‫{ عام فصل اختيار ثنائي االتجاه‬
‫{ عام ثابتة باطلة الرئيسية (سلسلة [] الحجج )‬
‫‪:‬انتاج‬
‫إنشاء الماسح الضوئي ‪//‬‬
‫الرجاء إدخال الرقم‪10 :‬‬
‫الماسح الضوئي الجديد‬ ‫; ) ‪ (System.in‬إدخال الماسح الضوئي‪=:‬‬
‫انتاج‬
‫هو عدد زوجي ‪10‬‬
‫‪ .print10‬نظام‪ .‬خارج‬ ‫الرقم‪( :‬‬
‫إدخالالرقم"‬
‫الرجاءإدخال‬
‫;) "‪:‬الرجاء‬
‫‪ x = 10‬كثافة العمليات‬ ‫زوجي‬
‫اإلدخال‬ ‫؛)( هو عدد‬
‫‪.nextInt‬‬
‫هو رقم فردي ‪10‬‬
‫إذا ( س ‪)0 == 2 %‬‬
‫;) "هو رقم زوجي " ‪ .println ( x +‬نظام‪ .‬خارج‬
‫آخر‬
‫;) "هو رقم فردي " ‪ .print ( x +‬نظام‪ .‬خارج‬
‫}‬
‫}‬
‫‪Java Programming Language‬‬ ‫‪32‬االنزالق‬
‫إذا و إذا‪ ...‬عبارات أخرى‬

‫ما هو ناتج الكود في (أ) و (ب) إذا كان الرقم ‪ 30‬؟ ماذا لو كان الرقم ‪‬‬
‫‪ 35‬؟‬
‫)أ(‬ ‫)ب(‬
‫إذا ( الرقم ‪)0 == 2 %‬‬ ‫إذا ( الرقم ‪)0 == 2 %‬‬
‫رقم ‪ .println ( +‬نظام‪ .‬خارج‬ ‫رقم ‪ .println ( +‬نظام‪ .‬خارج‬
‫؛) ""زوجي‬ ‫؛) ""زوجي‬
‫آخر‬
‫نظام‪ .‬طباعة ( رقم ‪ " +‬غريب" )؛‬ ‫نظام‪ .‬طباعة ( رقم ‪ " +‬غريب" )؛‬
‫‪35‬‬
‫‪30‬‬
‫متساوي ‪30‬‬
‫متساوي ‪30‬‬
‫‪35‬‬ ‫غريب‬ ‫غريب ‪35‬‬
‫أمر ‪30‬‬
‫غريب‬
‫‪Java Programming Language‬‬ ‫‪33‬االنزالق‬
‫األخطاء الشائعة‬

‫‪.‬يعد خطًأ شائًع ا ‪ if‬ملحوظة‪ :‬إضافة فاصلة منقوطة في نهاية عبارة ‪‬‬

‫إذا ( الرقم ‪ )0 == 2 %‬؛‬


‫؛) "رقم ‪" +‬زوجي ( ‪ .println‬نظام‪ .‬خارج‬

‫نظام‪ .‬طباعة ( رقم ‪ " +‬غريب" )؛‬

‫خطأ‬
‫من الصعب العثور على هذا الخطأ‪ ،‬ألنه ليس خطأ في الترجمة أو‬
‫خطأ في وقت التشغيل‪ ،‬بل هو خطأ منطقي‬
‫‪Java Programming Language‬‬ ‫‪34‬االنزالق‬
‫خطأ في بيان آخر مستقل‬

‫‪ if .‬عن عبارة ‪ else‬ال يمكن فصل عبارة ‪ Java ،‬في ‪‬‬

‫إذا ( الرقم ‪ )0 == 2 %‬؛‬


‫؛) "رقم ‪" +‬زوجي ( ‪ .println‬نظام‪ .‬خارج‬
‫آخر‬
‫نظام‪ .‬طباعة ( رقم ‪ " +‬غريب" )؛‬
‫خطأ في بناء‬
‫خطأ‬ ‫الجملة‬

‫‪ Java‬قائمة بذاتها في ‪ else‬ال يمكن أن تكون عبارة‬

‫‪Java Programming Language‬‬ ‫‪35‬االنزالق‬


‫‪.‬البيانات المركبة (كتلة)‬

‫إذا (العمر > ‪)18‬‬


‫{‬
‫؛)"‪.‬مؤهل للتصويت"( ‪System.out.println‬‬
‫؛)"‪.‬لم يعد قاصًر ا"( ‪System.out.println‬‬
‫}‬
‫آخر‬ ‫خطأ في بناء‬‫سيتم تنفيذ هذا البيان مهما كانت‬
‫الجملة‬ ‫حالة الشرط‬
‫{‬
‫؛)"‪.‬غير مؤهل للتصويت"( ‪System.out.println‬‬
‫؛)"‪.‬ال يزال قاصًر ا"( ‪System.out.println‬‬
‫}‬
‫‪ .‬تتكون العبارات المركبة من سلسلة من العبارات محاطة بأقواس‬
‫‪Java Programming Language‬‬ ‫‪36‬االنزالق‬
‫تحديدات متعددة‪ :‬متداخلة إذا كان آخر‬
‫‪ .‬متداخلة ‪ if‬أخرى لتكوين عبارة ‪ if‬داخل عبارة ‪ if‬عبارة ‪‬‬

‫{ إذا (<الشرط>)‬ ‫{ إذا (النتيجة >= ‪)90‬‬


‫; >البيان(البيانات)<‬ ‫‪ .out.println‬نظام‬
‫{ وإال إذا (<حالة>) }‬ ‫؛) "أ" (‬
‫; >البيان(البيانات)<‬ ‫وإال إذا }‬
‫{ آخر }‬ ‫{ )النتيجة >= ‪(80‬‬
‫; >البيان(البيانات)<‬ ‫‪ .out.println‬نظام‬
‫}‬ ‫؛) "‪( "B‬‬
‫{ آخر }‬
‫‪ .out.println‬نظام‬
‫‪Java Programming Language‬‬ ‫؛) "‪( "C‬‬ ‫‪37‬االنزالق‬
‫التحديدات المتعددة‪ :‬متداخلة إذا كانت غير ذلك (تابع)‬

‫متعددة ‪ S‬انتخابات‬ ‫خطأ‬


‫النتيجة >= ‪90‬‬
‫شنيع‬
‫إذا (النتيجة >= ‪) 90‬‬ ‫حقيق‬ ‫خطأ‬
‫النتيجة >= ‪80‬‬
‫"( ‪System.out.print‬‬ ‫؛)" أ‬ ‫ي‬ ‫شنيع‬
‫الصف هو أ‬
‫وإال إذا (النتيجة >= ‪) 80‬‬ ‫خطأ‬
‫حقيق‬ ‫شنيعالنتيجة >= ‪70‬‬
‫"( ‪System.out.print‬‬ ‫؛)" ‪B‬‬
‫الصف هو ب ي‬
‫وإال إذا (النتيجة >= ‪) 70‬‬ ‫خطأ‬
‫"( ‪System.out.print‬‬ ‫؛)" ‪C‬‬ ‫حقيق‬ ‫شنيعالنتيجة >= ‪60‬‬
‫وإال إذا (النتيجة >= ‪) 60‬‬ ‫‪ C‬الصف هو ي‬
‫"( ‪System.out.print‬‬ ‫؛)" ‪D‬‬ ‫حقيق‬
‫آخر‬ ‫الصف هو د ي‬
‫"( ‪System.out.print‬‬ ‫؛)" ‪F‬‬ ‫‪ F‬الصف هو‬

‫‪Java Programming Language‬‬ ‫‪38‬االنزالق‬


‫إقران آخر مع إذا‬
‫مع أحدث حالة غير مكتملة ‪ -‬أي ‪ else‬بربط ‪ Java‬المتداخلة ‪ ،‬تقوم ‪ if‬في عبارة‬
‫‪ else .‬األحدث إذا لم يتم إقرانها مع‬

‫إذا (درجة الحرارة >= ‪)50‬‬


‫إذا (درجة الحرارة >= ‪)80‬‬
‫؛)"‪.‬يوم جيد للسباحة"( ‪System.out.println‬‬
‫آخر‬
‫؛)"‪.‬يوم جيد للعب الغولف"( ‪System.out.println‬‬

‫‪Java Programming Language‬‬ ‫‪39‬االنزالق‬


‫إقران آخر مع إذا (تابع)‬

‫إذا (درجة الحرارة >= ‪)50‬‬


‫إذا (درجة الحرارة >= ‪)80‬‬
‫؛)"‪.‬يوم جيد للسباحة"( ‪System.out.println‬‬
‫آخر‬
‫؛)"‪.‬يوم جيد للعب الغولف"( ‪System.out.println‬‬
‫آخر‬
‫؛)"‪.‬يوم جيد للعب التنس"( ‪System.out.println‬‬

‫‪Java Programming Language‬‬ ‫‪40‬االنزالق‬


‫‪ if‬بسلسلة من عبارات ‪ if… else‬مقارنة عبارات‬

‫إذا (الشهر == ‪) 1‬‬ ‫إذا (الشهر == ‪) 1‬‬


‫؛)" يناير "( ‪System.out.print‬‬ ‫؛)" يناير "( ‪System.out.print‬‬
‫وإال إذا (الشهر == ‪) 2‬‬ ‫إذا (الشهر == ‪) 2‬‬
‫؛)" فبراير "( ‪System.out.print‬‬ ‫؛)" فبراير "( ‪System.out.print‬‬
‫وإال إذا (الشهر == ‪) 3‬‬ ‫إذا (الشهر == ‪) 3‬‬
‫؛)" مارس "( ‪System.out.print‬‬ ‫؛)" مارس "( ‪System.out.print‬‬
‫وإال إذا (الشهر == ‪) 4‬‬ ‫إذا (الشهر == ‪) 4‬‬
‫؛)" أبريل "( ‪System.out.print‬‬ ‫؛)" أبريل "( ‪System.out.print‬‬
‫وإال إذا (الشهر == ‪) 5‬‬ ‫إذا (الشهر == ‪) 5‬‬
‫؛)" مايو "( ‪System.out.print‬‬ ‫؛)" مايو "( ‪System.out.print‬‬
‫وإال إذا (الشهر == ‪) 6‬‬ ‫إذا (الشهر == ‪) 6‬‬
‫؛)" يونيو "( ‪System.out.print‬‬ ‫؛)" يونيو "( ‪System.out.print‬‬

‫‪Java Programming Language‬‬ ‫‪41‬االنزالق‬


‫الشرطي (؟ ‪ ):‬المشغل‬
‫‪.‬المعامل الشرطي ‪ :‬هو عامل ثالثي‪ ،‬أي أنه يأخذ ثالث وسائط ‪‬‬
‫بناء الجملة ‪‬‬

‫التعبير‪3‬‬ ‫‪:‬‬ ‫التعبير‪2‬‬ ‫التعبير‪ 1‬؟‬

‫لو (أ >= ب)‬


‫الحد الأقصى =‬ ‫الحد الأقصى = (أ >=‬
‫أ؛‬ ‫ب) ؟ أ ‪ :‬ب؛‬
‫آخر‬
‫الحد الأقصى =‬
‫ب؛‬
‫‪Java Programming Language‬‬ ‫‪42‬االنزالق‬
)‫) المشغل (تابع‬: ‫الشرطي (؟‬

)0 == 2 % ‫إذا (عدد‬
System.out.println (num + "is")‫؛‬
‫آخر‬
System.out.println (num + "‫؛)"غريب‬

23‫متساوي‬
‫غريب‬
‫يعادل‬ 32 == ‫العدد‬
‫العدد‬

System.out.println (
(0 == 2 % ‫)رقم‬ ‫؟‬ num + "‫"هو زوجي‬ : num + "‫هو‬
‫فردي")؛‬
Java Programming Language ‫االنزالق‬43
‫هياكل التبديل‬
‫‪.‬أ تقوم عبارة التبديل بتنفيذ العبارات بناًء على قيمة متغير أو تعبير ‪‬‬

‫الشهر==؟‪24‬‬
‫شهر‬ ‫أبريل‬
‫فبراير‬ ‫شهر‬
‫التبديل (شهر)‬
‫؛)" يناير "( ‪: System.out.println‬حالة ‪1‬‬
‫استراحة ؛‬
‫؛)" فبراير "( ‪: System.out.println‬الحالة ‪2‬‬
‫استراحة ؛‬
‫تم تخطي‬
‫بيان التبديل‬
‫‪: System.out.println‬الحالة ‪3‬‬ ‫؛)" مارس "(‬
‫استراحة ؛‬ ‫‪.‬بأكمله‬
‫؛)" أبريل "( ‪: System.out.println‬الحالة ‪4‬‬
‫استراحة ؛‬
‫؛)" مايو "( ‪: System.out.println‬الحالة ‪5‬‬
‫استراحة ؛‬
‫؛)" يونيو "( ‪: System.out.println‬الحالة ‪6‬‬
‫استراحة ؛‬
‫‪Java Programming Language‬‬ ‫‪44‬االنزالق‬
‫هياكل التبديل (تابع)‬
‫التبديل (شهر)‬
‫؛)" يناير "( ‪: System.out.println‬حالة ‪1‬‬
‫استراحة ؛‬
‫؛)" فبراير "( ‪: System.out.println‬الحالة ‪2‬‬
‫استراحة ؛‬
‫؛)" مارس "( ‪: System.out.println‬الحالة ‪3‬‬
‫استراحة ؛‬
‫؛)" أبريل "( ‪: System.out.println‬الحالة ‪4‬‬
‫استراحة ؛‬
‫؛)" مايو "( ‪: System.out.println‬الحالة ‪5‬‬
‫استراحة ؛‬
‫؛)" يونيو "( ‪: System.out.println‬الحالة ‪6‬‬
‫استراحة ؛‬
‫خطأ‪ :‬الشهر ‪" +‬غير "( ‪: System.out.println‬االفتراضي‬
‫؛)"صالح‬
‫‪Java Programming Language‬‬ ‫‪45‬االنزالق‬
‫هياكل التبديل (تابع)‬
‫كلمات ‪ default‬و ‪ break‬و ‪ case‬و ‪ Switch‬تعد كلمات ‪ Java،‬في ‪‬‬
‫‪.‬محجوزة‬
‫‪ short‬أو ‪ byte‬أو ‪ int‬يمكن أن تكون قيمة المعرف أو التعبير من النوع ‪‬‬
‫‪.‬فقط ‪ char‬أو‬
‫‪.‬حالة معينة مرة واحدة فقط ‪‬‬
‫قد تتبع عبارة واحدة أو أكثر تسمية الحالة ‪ ،‬لذلك ال تحتاج إلى استخدام ‪‬‬
‫‪.‬األقواس لتحويل عبارات متعددة إلى عبارة مركبة واحدة‬
‫إذا كانت قيمة التعبير ال تتطابق مع أي من قيم الحالة ‪ ،‬فسيتم تنفيذ ‪‬‬
‫‪ .‬العبارات التي تتبع التسمية االفتراضية‬
‫‪.‬بيان االستراحة إلى الخروج الفوري من بنية المحول ‪‬‬

‫‪Java Programming Language‬‬ ‫‪46‬االنزالق‬


‫تمارين البرمجة‬

‫‪ .‬تمرين البرمجة رقم (‪ )1‬صفحة ‪1. 241‬‬


‫‪ .‬تمرين البرمجة رقم (‪ )8‬صفحة ‪2. 243‬‬
‫‪ .‬تمرين البرمجة رقم (‪ )9‬صفحة ‪3. 244‬‬

‫‪Java Programming Language‬‬ ‫‪47‬االنزالق‬

You might also like