/‪Java Programming: Let's Master‬‬ 3/i

‪Java Programming: Let's Master‬‬ 3/i

 

Chapter 3 : Selection Statements

 

في شابتر 3 هنتكلم عن الجمل الشرطية في الجافا وهما الـ if & switch بس الأول هنتعرف علي معني المتغير الشرطي اللي مش بنستخدمه إلا في مقارنة قيم او متغيرات او حتي تعبيرات كاملة expressions ببعض .

3.2. boolean Data Type and Operations

في بعض الأحيان بنحتاج في البرنامج اننا نقارن قيمتين ببعض والجافا فيها 6 علامات للمقارنة ونتيجة المقارنة بتبقي إما true او false يعني مثلا الجملة دي هترجع true :

System.out.println(1 < 2);
 

 

ملحوظة : ممكن نقارن برده الحروف زي مابنقارن الأرقام عادي يعني حرف الa اكبر من حرف الA وده لأن المقارنة بتقارن الunicode بتاع الحرف و الunicode لحرف a اكبر من الunicode لحرف الA
ملحوظة : عند عمل مقارنة بين قيمتين من حيث التساوي بنستخدم ‘==’ وليس ‘=’ لأن ال = بنستخدمه في اعطاء القيم للمتغيرات .
والمتغير اللي بنحط فيه قيمة إما True او false بيسمي Boolean variable ومثال عليه :

boolean lightsOn = true;
 
 

وعلامات المقارنات عندنا بنستخدمها في مقارنة قيمتين شرطيتين والناتج بيكون قيمة شرطية جديدة يعني برده الناتج بيكون إما true او falseوعندنا هنا في الجدول ده العلامات

الشرطية :



 

 

هنتعرف علي اول علامة (!) وده اسمه negate operator وده بيخلي الtrue يبقي false والعكس بالعكس يعني ببساطة بينفي القيمة.
فيه كمان (&&) واسمه AND وده بيرجع true في حالة واحدة فقط لا غير وهي انه يكون التعبيرين اللي بيتقارنوا ببعض الأتنين بيرجعوا true اي حاجة تانية بيرجع false .
وكمان فيه (||) واسمه OR وده بيرجع true في حالة انه يكون اي تعبير من التعبيرين اللي بيتقارنوا ببعض بيرجع true .
وفيه (^) واسمه EXCULSIVE OR وده بيرجع true بس في حالة واحدة فقط لو كان التعبيرين اللي بيتقارنوا واحد منهم true والتاني false يعني مختلفين لكن لو التعبيرين رجعوا الأتنين true او false هيبقي الناتج false .

وده برنامج كمثال بيشوف القيمة اللي داخلة تقبل القسمة علي 2 و 3 , وسواء تقبل القسمة علي 2 او 3 , وسواء تقبل القسمة علي 2 او 3 ولكن مش عليهم هما الأتنين في نفس الوقت :

استخدمنا ‘\n’ علشان الناتج يطلع في اربع سطور وده شكل الناتج :

Unconditional vs. Conditional Boolean Operators

احنا دلوقتي استخدمنا علامتين زي (&&)(||) للمقارنة الشرطية ونلاحظ ان الجافا عملت العلامات دي لزيادة كفاء الكود يعني مثلا في حالة ال(&&) التعبيرين اللي بنقارنهم لو اول واحد فيهم رجع false مش بيحسب التعبير التاني اساسا وبيرجع النتيجة false , ونفس النظام في حالة (||) لو اول تعبير رجع true مش هيحسب التعبير التاني وهيرجع النتيجة true وعلشان كده اسمهم conditional.

الجافا برده عملت علامات تانية زي (&)(|) ودول بيقوموا بنفس وظيفة ال(&&)(||) بالظبط ولكن مع فرق واحد انه هنا لازم يتحسب التعبيرين في جميع الاحوال.
ملحوظة :: بلاش نستخدم العلامات (&)(|) في الكود لأن استخدامهم بيخلي الكود صعب وممكن يطلع error .
ملحوظة :: بيقول كمان ان احنا قدرنا نعمل casting بين الحروف والانواع التانية للمتغيرات لكن هنا مش هينفع اعمل Casting بين المتغير اللي من نوع Boolean وبين اي نوع من المتغيرات .
ملحوظة :: بيقول برده ان القيم true و false دي قيم عادية زيها زي 10 وبرده مقدرش اخليها اسم متغير مثلا زي ما ال10 متنفعش اسم لمتغير.
وده مثال علي الجزئية دي برنامج بيحسب هل السنة كبيسة او لأ :


وكمان مثال برنامج بيعلم الحساب عن طريق اسئلة بسيطة :

3.3. if Statements

في المثال اللي فات ده البرنامج كان بيقول ان مثلا 3+4=8 is false طيب افرض اني انا مش عاوزه يقول كده انا عاوز اطلع الناتج كده 3+4=8 is incorrect يبقي هنستخدم مايسمي selection statement وهنتعرف عليهم بالتفصيل في الجزئية دي .

3.3.1. Simple if Statements

اول شكل من اشكال جملة الif بكل بساطة بيحسب تعبير لو رجع true , ينفذ فعل معين :

وده شكل الflowchart او شرح لطريقة عمل الif :

بما معناه لو booleanExpression رجع true هينفذ الجمل اللي بين القوسين {} زي كده :

هنا لو قيمة نصف القطر اكبر من او بتساوي ال0 هتتحسب المساحة وتنطبع النتيجة لو مكانتش القيمة اكبر من او بتساوي ال0 الجمل بتاعة حساب المساحة والطباعة دول مش هيتنفذوا.

ملحوظة :: بنحط التعبير اللي احنا عايزين نعمل عليه الشرط بين قوسين وده اجباري .

نصيحة :: بيقول لازم ناخد بالنا من حكاية الأقواس بتاعة ال if لأن عدم عملها خطأ شائع جدا وكمان في الصورة اللي فاتت دي نلاحظ ان لما كانت الجمل اللي جوه الif عبارة عن جملة واحدة فقط معملناش {} يعني لو كانت الجمل جوه الif اكتر من جملة بنستخدم الأقواس دي {} وده اختياري يعني لو جملة واحدة سواء حطينا اقواس مجموعة او لأ مش مشكلة.
وده مثال بيحدد الرقم فردي او زوجي :


 

ملاحظة :: احنا اتعلمنا ان اي جملة في الجافا بتنتهي بـ (;) ولكن الif مش بنحط في اخر سطرها ; وده خطأ شائع برده .

3.3.2. if … else Statements :

هنا بقي هنكبر الموضوع شوية يعني مش هيبقي لو الشرط اتحقق اعمل كذا ده احنا كمان هنقوله لو الشرط الأول ماتحققش شوف شرط تاني لو اتحقق نفذ حاجة تانية وهكذا وشكلها بيبقي كده :

وده شكل ال flowchart للطريقة دي :

وهنا لو الbooleanExpression رجع true هينفذ الجمل اللي في حالة الtrue ولو رجع false هينفذ الجمل اللي في حالة false زي كده:

وبيقول برده لو عدد الجمل اللي هتتنفذ في كل حالة عبارة عن جملة واحدة مش مهم احط او اشيل الأقواس {} ولو عدلنا مثال الأعداد الفردية والزوجية هيبقي كده :

والطريقة التانية في حساب برنامج الاعداد الفردية والزوجية اكفأ لأنه بيحسب number % 2 ==0 مرة واحدة فقط علي عكس الطريقة الأولي.

كفاية لحد هنا النهارده ونكمل ان شاء الله في العدد الجاي من CATazine ،،،