Lesson 2

بسم الله الرحمن الرحيم
والصلاة والسلام على سيدنا محمد صل الله عليه وسلم
اخر مره اتكلمنا عن data type  وازاى ممكن نعرف Variable وده مثال على اخر حاجه وقفنا عندها :
Double number;
كده انا بعرف variable  اسمه number  ونوعه double وكده هيتحجزله فى الmemory  (8 bytes)

وإن شاء الله النهاردة هنكمل ونتكلم فى اكتر من موضوع .

أولاً : هنتكلم عن ال operators وانواعها :
1-    Arithmetic and Assignment Operators: وده ليه علاقة  بالعمليات الحسابية  أمثلة :
·        +  للجمع .
·        - للطرح .
·        / للقسمة .
·        * للضرب .
·        % للمتبقى من القسمة .
·        = Assignment  .
2-    Compare Operator : وده ليه علاقة بالمقارنات أمثلة :
·        >  اكبر من .
·        >=  اكبر من أو يساوى .
·        <  اصغر من .
·        <= اصغر من أو يساوى .
·        ==  يساوى .
·        != لا يساوى .
3-    Logical Operator  : وده ليه علاقة بالعمليات المنطقية أمثلة :
·        &&  (and) : وديه معناها فى java code  "و" .
·        || (Or) : وديه معناها "أو".
·        ! (not) : وديه معناها النفى  .
وكل ال operators  اللى فاتت هنفهما اكتر لما نستخدمها فى ال code  .
ثانياً : Create First Java Project  و ازاى نعمل new project  :
        وديه صور من الدرس الأول لعمل new project  .



New   à Java project     ثم بعد كده بكتب اسم ال project
-         بعد كده المفروض انى هكتب java code   ، بس هكتب الكود فين ؟
بعد ما عملنا الproject  هعمل Class  وهى ديه اللى هكتب فيها ال code

بقف عند src اللى موجود داخل ال project  اللى عملته وبعمل Right Click  عليه وبختار new  ثم Class  ثم بكتب اسم ال Class.
مبدئياً كده احنا إن شاء الله هنفهم اكتر عن موضوع ال Class  لما ندخل فى OOP  هنتكلم عنها باستفاضة اكتر بس خلينا دلوقتى نعرف انها المكان اللى هنكتب فيه ال code  بتاعنا .
بس فيه ملحوظة صغيرة وانا بعمل ال Class  فيه تحت اختيار مكتوب عليه  (public static void  main(string[]args)وده بعمل عليه علامة صح لو عايزه ال Class  اللى هعملها تكون  Main Class وفى حالتنا دلوقتى هعمل علامة صح ، بس هو يعنى ايه Main Class  ؟ ديه عبارة عن ال Class  اللى هيبدا منها تنفيذ ال code يعنى فى ال java  لما بعمل Run لل project  اول لما بيلاقى ال Class عبارة عن main class على طول بيعرف ان هى ديه ال Class  اللى هيبدأ من عندها تنفيذ ال Code بس ال project  الواحد فيه main class  واحدة بس مش اكتر من واحدة ومش اقل يعنى لازم يكون فيه main class  .

بعد ما اعمل finish  هيظهر ليا الشكل ديه :
ايه الشكل ده ؟ اولاً هنلاقى فوق اسم ال Class  بتاعتنا  ، ثانياً هنلاقى نفس الجملة اللى عملنا عليها علامة صح اللى هيا  :
(public static void main(string[]args)) وديه عبارة عن method وما نقلقش كل الحاجات ديه إن شاء الله هتتشرح بالتفصيل فى الدروس القادمة لان لو دخلنا فى تفاصيل دلوقتى ممكن نتلغبط انا بس يهمنى دلوقتى اننا نعرف اسمها  وداخل ال method  ديه هنكتب الكود بتاعنا يعنى من اول العلامة ديه } ولازم كل ال code  بتاعنا يتكتب داخل العلامة ديه قبل ما تتقفل ب ديه { والعلامتين دول عبارة عن حدود ال method  بتاعتى بتعرفنى ان بعدها كأنى مش هبقى جوه ال method  حتى ال Class  بعدها فيه العلامتين دول {} ومعناهم برده انى لو كتبت اى حاجه بعدهم هبقى خارج ال Class ولازم يتكتبو مع بعض لأنى بعد كده هكتبهم بأيدى يعنى لما افتح واحده فيهم لازم اقفل بالتانيه يا إما هيحصل error فى البرنامج بتاعى .
كده خلصنا الجزء الخاص بعمل project  وعمل ال Class  .
ثالثاً : هنتكلم عن ال Control Statements  وأنواعها :
وهى عبارة عن جمل من خلالها بتحكم اكتر فى ال code  وهى ليها اسم آخر  flow statements وانواعها :
-         Selection Statements.
-         Iteration Statements.
-         Jump Statements.
1-     Selection Statements : مكونه من نوعين وهما
§        If-Else
§        Switch Case
احنا هنشرح وظيفتهم ، وازاى اكتبهم فى ال code  يعنى ال syntax بتاعهم .
اولاُ: ايه هى وظيفتهم :
دول من ال controls  الهامة جدا لانى بستخدمهم فى ال code  كتير ووظيفتهم كالتالى بقدر من خلالهم اتحكم فى ايه اللى ممكن انفذه فى الcode  على حسب الظرف  اللى موجود عندى .
يعنى ايه الكلام ده مثلا لو عندى رقمين A ,B وانا مش عارفه قيمتهم وال user هو اللى هيدخل قيمتهم ديه الحاله الموجوده
يبقى هنا الظروف اللى عندى ان A ممكن يكون اكبر من B  او العكس او هما الاثنين متساويين وعلى حسب كل ظرف هنفذ اوامر معينه وليكن هطبع قيمه الرقم الكبير .
ده مثال طبعا بسيط جدا بس الفكره  منه فهم يعنى ايه selection statements وهناخد المثال ده وهنطبقه عملياً .
-         مبدئياً فى حاجات مهمة عايزين نعرفهم :
1-     ازاى اطبع حاجه فى  java ؟  باستخدام :
System.out.println("write here");
وبكتب مكان write here الجمل اللى عايزين نطبعها ولازم تكون بين " " لو كانت string عشان يفهم انها string ولو هطبع قيمه variable  يبقى هكتب اسمه من غير " " .
2-     ازاى باخد من ال user اى قيمه احنا عايزنها :
لو هاخد منه قيمه integer  هكتب كده :
Scanner s=new Scanner(System.in);
Int x=s.nextInt();
والقيمه اللى ال user هيدخلها هترجعلى فى x ولو عايزه قيمه من نوع تانى short مثلا هستخدم
nextShort() وكل نوع ليه ال method بتاعته
ممكن ماتكونوش فاهمين سطرين ال code  اللى فاتو اوى لاننا لسه ما شرحناش ال OOP  ان شاء الله لما تتشرح هتبقى واضحه المهم اننا نعرف نستخدمهم دلوقتى .
3-     فى اخر كل سطر فى ال code  لازم اكتب ; عشان يعرف ان السطر انتهى ولو ما كتبتش هيطلعلى error .
4-      لما اكتب برنامج واحب اعمله run بعمل ctrl+f11 او بضغط على ال button  الاخضر اللى فى الصورة .

وبعد ما نعمله run  بتظهر نتيجته اسفل ال code فى المكان ده :

ثانياً : ازاى اكتبهم فى ال code   :
§        If-Else :
If(condition)
{
}
Else
 {
}
والمعنى  فى if(condition)  ان لو حصل الظرف ده نفذ ال code ده ، وال code  هيكون مكتوب بين القوسين دول {} وال condition هو الظرف اللى عايزين نحققه .
ومعنى else  ان لو ما حصلش الظرف اللى فوق وحصل اى حاجه تانيه نفذ ال code  اللى بين القوسين اللى بعد ال else .
افرض انا عايزه احدد كذه ظرف زى المثال بتاع الرقمين A, B هعمل كده  :
-         اولاً هاخد القيم من ال user  كده :
 وبعد كده هنستخدم if-else بالشكل ده :

·        نفهم من الكود ده ان if  لازم اكتب بعدها condition معين ولو عايزه احدد condition  تانى اكتب else if (condition) ولو مش محدده الظرف اللى هيحصل هكتب else  بس مش else if .
·        اخر سطر فى الكود بعرض فيه قيمه A and B علامة الجمع مش بجمع قيمهم لا ده انا كده بكتبهم جنب بعض وبفصل بينهم بال ( , ) .
·        داخل الاقواس ديه  {} انا ممكن اكتب اى code  حتى لو حبيت اعمل if-else تانية جواها هينفع اعملها وهتبقى اسمها  nested if يعنى اتنين if جواه بعض .

§        Switch case  :
Switch (Variable)
{
Case 1: code; break;
Case 2: code; break;
default: code; break;
}
-         اول حاجه نفهم الكلام اللى مكتوب ده ، variable معناها القيمه اللى هقارنها بكل ال cases اللى مكتوبه .
-          Case 1 مكان 1 و2 بكتب فيها القيم اللى بقارن ال variable بيها.
-         Code بكتب مكانها الكود اللى هيتنفذ فى حاله ان الcase  اتحققت وبنهى الكود ب ;  
-         ثم بكتب break;  بعد كل case ومعناها لما يتنفذ ال case اللى انا فيها اخرج بره ال switch  وما تنفذش اى Case تانيه .
-         Default معناها لو ال statement ما حققش ولا case  من اللى فاتو ينفذ الكود اللى فى default .
-         المثال اللى فات ما اقدرش اعمله بال switch case  ليه ؟ لانها بتتعامل بس مع علاقة == يعنى علاقة يساوى بس لكن المقارنه مش بتتم داخل switch case ومن هنا نقدر نتكلم شويه عن مميزات وعيوب ال switch case  :
اولاً : مميزاتها :
n      اسرع من if-else لانها بتدخل على طول على ال condition  الصح لكن if-else بتعدى من اول condition  لحد الصح اللى فيهم وبكده لو ال condition  الصح هو اخر واحد يبقى هتعدى عليهم كلهم .
ثانياً : عيوبها :
n      انها بتتعامل مع == بس زى ما قولنا مش بتتعامل مع المقارنات
n      بتتعامل مع primitive data type بس وفى الدروس القادمه هنعرف ال object وهى مش بتتعامل مع ال  objects.
ومثال على switch case  لو عندى variable  وعايزه اعرف قيمتة 5 ولا 6 ولا 7 ولا قيمه غير الأرقام ديه اصلا :
البرنامج هياخد قيمة ال variable من ال user ويشوف هو ايه ويعرض قيمته بالشكل ده :
ملحوظة: اى code بعمله ب switch case  ينفع اعمله ب if – else  لكن مش اى code  بعمله ب if – else ينفع اعمله ب switch case لانها بتتعامل مع == بس لكن if- else بتتعامل مع اى حاجه .
شويه اختصارات كده نتعملها :
-         Ctrl+shift+f بتنظم الكود المكتوب ممكن نجربها هتبقى مفيده جدا فى تنظيم الكود .
-         لما اكتب اى method build in  فى ال java  زى مثلا system  اكتب اول كام حرف وبعد كده ctrl+space هيجبلى كل الحاجات اللى بتبدأ فى java بالحروف ديه وده بيسهل عليا بدل ما اكتب الحاجه كلها لان كتير مش بنكون حافظين الحاجه كامله فبنستعين بالطريقه ديه عشان تسهل لنا الدنيا .
-         وبكده نكون خلصنا selection statements وهنقف لحد كده ونكمل باقى ال control statements إن شاء الله الدرس القادم وخلال الاسبوع ده هيكون عندنا task  وهو كالاتى :
n      ناخد input من ال user انه يدخل لينا درجه طالب
n      نعمل if- esle لو درجه الطالب ما بين 100 الى 85 نطبع على الشاشه كلمه Excellent
n      لو الدرجه مابين 75 الى 84 نطبع very good
n      لو الدرجه مابين 65 الى 74 نطبع good
n      لو الدرجه ما بين 50 الى 64 نطبع fair
n      لو الدرجه اقل من 50 نطبع fail
n      لو الدرجه اكبر من 100 او اقل من 0 نطبع له Invalid Number
وده كتاب كويس فيه شرح اكترعن control statements  وده اللينك :
يارب تكونوا استفدوا من درس النهارده وياريت تطبقو الامثله الى فيه وتعملوا ال task  هتفرق كتير اوى ان شاء الله
ولو فيه اى حاجه مش واضحه اكيد تسألوا فيها .
السلام عليكم ورحمة الله وبركاته

No comments:

Post a Comment