الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

دورة الجافا: الدرس الرابع (الجمل الشرطيه)

مغلق
بدأه huss22us في 26 سبتمبر 2004 · 25 رد · 10,154 مشاهدة · في JavaSE
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

بسم الله الرحمن الرحيم

السلام عليكم ورحمة الله وبركاته

نبدأ اليوم بشرح الجمل الشرطية وسنعتمد على ما قام الأخ لؤى بشرحه فى درس المتغيرات

ولنبدأ بإذن الله

الجمل الشرطية "Conditional Statements" لها نوعان

•الجمل الشرطية الإختيارية "Conditional Selection Statements"

وهى تضم " IF ----- IF Else ----- Switch"

•الجمل الشرطية التكرارية "Repetition "

وهى تضم " FOR ----- While ----- Do While "

و سنتحدث إن شاء الله فى درس اليوم عن النوع الأول وهو الجمل الشرطية الإختيارية أما النوع الثانى فسنتحدث عنه لاحقا فى الدرس القادم إن شاء الله

أولا: جملة IF

وتكتب هكذا

If (الشرط)
{
   // مجموعة الأوامر التى ستنفذ عند تحقق الشرط
}

ولنأخذ مثال بسيط نشرح فيه ال IF

package courseexampels;
import javax.swing.JOptionPane;

public class IFexample
{
  public static void main(String args[])
  {
    int x,y,z;
    String operation;
    x = Integer.parseInt(JOptionPane.showInputDialog("Enter X Please"));
    y = Integer.parseInt(JOptionPane.showInputDialog("Enter Y Please"));
    operation =  JOptionPane.showInputDialog("Enter ADD For Addition OR SUB For subtraction");
    if (operation.equalsIgnoreCase("ADD"))
    {
      z=x+y;
      JOptionPane.showMessageDialog(null,"Result OF Addition"+z);
    }
    if (operation.equalsIgnoreCase("SUB"))
    {
      z=x-y;
      JOptionPane.showMessageDialog(null,"Results Of Subtraction"+z);
    }
    System.exit(0);
  }
}

شرح المثال :

أولا قمنا بعمل import للملف javax.swing.JOptionPane

حتى نتمكن من إظهار الرسائل على الشاشه لإدخال البيانات وإخراجها لإظهار النتيجة

وبعد ذلك قمنا بتعريف ال class والدالة main ثم قمنا بتعريف 4 متغيرات هى x , y , z , operation

ال x,y,z من النوع int و operation من النوع string

إستخدمنا x و y للحصول على رقمين من المستخدم ولكن لآن الرساله تقوم بإرجاع كائن "OBJECT" إضطررت لإستخدام مفهوم ال parsing وهو تحويل متغير من نوع لنوع أخر و للعلم فإن ليس كل أنواع المتغيرات يمكن تحويلها إلى نوع أخر ولذا نجد الأمر مكتوب بهذه الطريقة

x = Integer.parseInt(JOptionPane.showInputDialog("Enter X Please"));

حيث JOptionPane.showInputDialog("Enter X Please") هو المسئول عن إظهار رسالة الإدخال والحصول على الرقم فى شكل كائن و Integer.parseInt هو المسئول عن تحويل الكائن إلى رقم صحيح

وبالمثل حصلنا على رقم أخر وضعناه فى ال y

ثم بعد ذلك نطلب من المستخدم إدخال نوع العملية سواء كان جمع "ADD" أو طرح "SUB" ونخزنه فى operation

بعد ذلك عن طريق ال IF نختار بين تنفيذ عملية الجمع و الطرح

فإذا كان العملية المختارة هى الجمع ننفذ عملية الجمع ونطبع النتيجة وإذا كانت العملية هى الطرح فإننا ننفذ عملية الطرح ونطبع النتيجة

ولمقارنة متغير من النوع String بأخر أو كلمة مدخلة من المستخدم فإننا نستخدم الكود

operation.equalsIgnoreCase("SUB")

و الدالة equalsIgnoreCase تختبر المساواة مع عدم الإهتمام بحالة الحروف

ويمكنك أن تجرب المثال براحتك

والخلاصة : أن ال IF يطلق عليها أحادية الإختيار Single Selection حيث تختار بين تنفيذ مجموعة أوامر أو عدم تنفيذها

ثانيا:جملة IF Else

وتكتب كالتالى

If (الشرط)
{
  // مجموعة الأوامر التى ستنفذ فى حالة تحقق الشرط 
}
Else
{
  // مجموعة الأوامر التى ستنفذ فى حالة عدم تحقق الشرط
}

ولنأخذ مثال :

package courseexampels;
import javax.swing.JOptionPane;

public class IFElse
{
 public static void main(String args[])
  {
    int x,y,z;
    String operation;
    x = Integer.parseInt(JOptionPane.showInputDialog("Enter X Please"));
    y = Integer.parseInt(JOptionPane.showInputDialog("Enter Y Please"));
    operation =  JOptionPane.showInputDialog("Enter ADD For Addition");
    if (operation.equalsIgnoreCase("ADD"))
    {
      z=x+y;
      JOptionPane.showMessageDialog(null,"Result OF Addition"+z);
    }
    else
    {
      z=x-y;
      JOptionPane.showMessageDialog(null,"Results Of Subtraction"+z);
    }
    System.exit(0);
  }
}

سنجد أنه تقريبا نفس المثال السابق تقريبا ولكن مع تغيير فى إستخدام ال if else بدلا من ال if

وسنجد لو أن المستخدم لم يقوم بإدخال كلمة add لإختيار عملية الجمع فستنفذ عملية الطرح عكس المثال الأول إذا لم نختار الجمع أو الطرح فلن ينفذ أى شئ

ويمكنك إختبار هذا المثال أيضا وتجريبه

والخلاصة: أن ال IF ELSE يطلق عليها ثنائية "زوجية" الإختيار Double Selection حيث تختار بين تنفيذ مجموعة أوامر حين تحقق الشرط و مجموعة أخرى عند عدم تحقق الشرط

ملحوظة هامه و مفيدة:

من أهم خصائص ال IF أو ال IF ELSE هو ما يطلق عليه التداخل "Nested" وهو أن تكون هناك if else أو if داخل if أو if else

ولننظر المثال

سنجد أنه نفس المثال و لكننا نجمع ونطرح ونضرب و نقسم

package courseexampels;
import javax.swing.JOptionPane;

public class NestedIfElse
{
  public static void main(String args[])
  {
    int x,y,z;
    String operation;
    x = Integer.parseInt(JOptionPane.showInputDialog("Enter X Please"));
    y = Integer.parseInt(JOptionPane.showInputDialog("Enter Y Please"));
    operation =  JOptionPane.showInputDialog("Enter ADD For Addition OR SUB For subtraction OR MUL For Multiplication OR Div For Division");
    if (operation.equalsIgnoreCase("ADD"))
    {
      z=x+y;
      JOptionPane.showMessageDialog(null,"Result OF Addition"+z);
    }
    else
    {
      if (operation.equalsIgnoreCase("SUB"))
      {
       z=x-y;
       JOptionPane.showMessageDialog(null,"Results Of Subtraction"+z);
      }
      else
      {
       if(operation.equalsIgnoreCase("MUL"))
       {
        z=x*y;
        JOptionPane.showMessageDialog(null,"Results Of Subtraction"+z);
       }
       else
       {
         if(operation.equalsIgnoreCase("DIV"))
         {
          z=x/y;
          JOptionPane.showMessageDialog(null,"Results Of Subtraction"+z);
         }
         else
         {
          JOptionPane.showMessageDialog(null,"You Did Not Choose Any Correct Operation");
         }
       }
      }
    }
    System.exit(0);
  }

}

الواجب :

•أن تحاول معرفة ناتج هذا المثال فى خمسة حالات مختلفة هى إختيار الجمع مرة والضرب مرة والقسمة مرة و الطرح مرة ومرة أخرى تدخل إختيار ليس موجودا

•أن تقوم بعمل برناج يطلب مثلا من المستخدم إدخال درجة طالب

إذا كانت درجته من 85 إلى 100 فهو Excellent

و إذا كانت درجته من 75 إلى 85 فهو VGOOD

وإذا كانت درجته من 65 إلى 75 فهو GOOD

وإذا كانت درجته من 55 إلى 65 فهو ACCEPTED

وإذا كانت أقل من 55 إلى 0 فهو Failed

وإن شاء الله هنكمل مع ال switch و ال loops فى الدرس القادم

ويا ريت كل واحد يورينا الواجب بتاعة

اللهم إنك عالم بحالى وغنى عن سؤالى فأهدنى وأصلح لى بالى

#2

بارك الله فيك على المجهود بس يا اخي لو انك تجمع الدروس في موضوع واحد حتى لاتضيع الدروس بين المواضيع

والسلام عليكم ورحمة الله وبركاته

لست متواجد بشكل يومي

#3

شكرا على الشرح الجميل ....... ونرجو المزيد

الحياة كلها وقفة عز فقط

------------------------------------------

المجتمع معرفة و المعرفة قوة

#4

السلام عليكم

شكرا لكم على الرد

وبالنسبة لموضوع وضع الدروس فى موضوع واحد سأقوم بالإتفاق

مع الأخ / لؤى أولا ثم نرى إمكانية ذلك إن شاء الله.

اللهم إنك عالم بحالى وغنى عن سؤالى فأهدنى وأصلح لى بالى

#5

السلام عليكم ورحمة الله وبركاته

أشكركم على هذا الشرح أخي حسام والأخ أبو العبد

وأرجو توفير مواقع لنا لتعليم Applet

ولكم جزيل الشكر

اللهم صل وسلم وزد وبارك على سيدنا محمد وعلى آله وصحبه وسلم

تعلم كيف تقرأ من ملف باستخدام لغة السي

Routers Programming-الدرس الأول

#6

بسم الله الرحمن الرحيم

جزاك الله خيرا أخي الكريم حسين على هذه الدروس الرائعة وبارك الله فيك وأكثر الله من أمثالك

أخوك / لؤي (أبو العبد)

#7

أخي الكريم / مجدي محمود ، حفظه الله

السلام عليكم ورحمة الله وبركاته

جزاك الله خيرا أخي الكريم على اقتراحك ولكني أفضل أن يتم تثبيت هذه المواضيع في البداية إذا أردنا أن نسهل على الأعضاء المتابعة لأن المتابعة في رأيي ستكون أسهل إن كانت هناك عدة مواضيع مثبتة وفي نهاية الدورة نضعها في ثلاثة مواضيع مثبتة مستوى مبتدئ ثم متوسط ثم متقدم

ولكن خطرت لي فكرة أخرى وهي أن أضع موضوعا واحدا يتم تثبيته وفي كل موضوع رابط لكل درس

فمثلا نضع موضوع نسميه دورة الجافا خلال هذا الموضوع أضع فيه عدة روابط

1) مقدمة

2) الدرس الأول

3) الدرس الثاني

4) الدرس الثالث

5) الدرس الرابع وهكذا حتى نهاية الدورة

ما رأيك

إن وافق أخي الكريم رامي العيساوي أقوم بوضع هذا الموضوع الذي يشمل كل مواضيع الدورة ثم يقوم الأخ رامي أو أحد المشرفين بتثبيت الموضوع

#8

بسم الله الرحمن الرحيم

شكرا لك أخي الكريم hani1 على التشجيع ونرجو المشاركة وحل الواجب

أما بالنسبة لأخي الكريم eng_ibr (إبراهيم) فأهلا وسهلا بك عضوا جديدا في هذا المنتدى وإليك أخي الكريم هذا الموقع الذي يضم عدة مواقع للجافا وإن شاء الله يكون هذا ما طلبت

http://www.tutorialfind.com/tutorials/internet/java/

إن لم يكن هذا ما طلبت أرجو أن توضح لي وأنا على استعداد لأن أبحث لك عن مواقع أخرى

أخوك / لؤي (أبو العبد)

#9

بسم الله الرحمن الرحيم

إخوتي الكرام

لقد قمت بجمع الدروس كلها في موضوع واحد أسميته فهرس دورة الجافا

أرجو التثبيت لهذا الموضوع

علما بأن رابط الموضوع هو :

فهرس دورة الجافا

أخوكم / لؤي (أبو العبد)

#10

بسم الله الرحمن الرحيم

بالنسبة لأخي الكريم eng_ibr (إبراهيم) إليك موقع آخر بخصوص الجافا أبليت وهو يحتوي أبليت مجاني

http://www.bodo.com/Applets/

#11

السلام عليكم

أنا طالب منتظم إن شاء الله معاكم و أتمنى أن أحصل على درجة حلوة على الواجب

السؤال الثاني

import javax.swing.*;
public class Hw {
    static int x;
    public static void main(String[] args) {
     x=Integer.parseInt(JOptionPane.showInputDialog(null,"write the degree of student")); 
    if(x>=85&&x<=100)
    JOptionPane.showMessageDialog(null,"this student is Excellent"); 
    else if(x>=75)
    JOptionPane.showMessageDialog(null,"this student is VGOOD"); 
    else if(x>=65)
    JOptionPane.showMessageDialog(null,"this student is GOOD"); 
    else if(x>=55)
    JOptionPane.showMessageDialog(null,"this student is ACCEPTED"); 
    else if(x<=55&&x>=0)
    JOptionPane.showMessageDialog(null,"this student is Failed");
    else{
    JOptionPane.showMessageDialog(null,"please write number between 0-100");
    main(args);
    }
    System.exit(0);
    }

السؤال الأول إجابته

يفترض أن تعطيني قيم x,y

حتى أجيبك

ما عدا في حالة أني أدخلت شيء آخر فإن البرنامج سوف يطبع التالي

You Did Not Choose Any Correct Operation

حزمة المحرك الإصدارة 0.8

أي أحد يجد أني ظلمته فليراسلني

وبإذن الله لو كان له حق سيأخذه

728x90.png

#12

بسم الله الرحمن الرحيم

أخي الكريم alaadiaaa

جزاك الله خيرا أخي الكريم وبارك الله فيك على هذا الحل الرائع تستحق علامة 10 على 10 ولكن هناك خطأ يبدو أنك لست مسؤولا عنه وهذا الخطأ لا أدري ما هو سببه مع أن الكود صحيح مائة بالمائة

الخطأ هو أنه عندما تضع رقما أكبر من 100 يعطيك أن النتيجة هي vgood مع أن المفروض كما في البرنامج أن يعطيك أن النتيجة please write number between 0-100

كما قلت لك البرنامج صحيح لكنني عندما جربته على رقم أكبر من 100 كان يعطي أن النتيجة vgood

في الدرس القادم بعون الله سيقوم الأخ حسين huss22us إن شاء الله بشرح جملة switch وهي طريقة أخرى لكتابة الجمل الشرطية وإن شاء الله باستخدام هذه الجملة ستتمكن من حل مثل هكذا مشاكل

أشكرك أخي الكريم مرة أخرى ويكفي أنك أول من حل واجبا علما بأنني وضعت الدورة في حوالي 15 منتدى لم يحل أحد الواجب سواك

لذلك أشكرك أخي الكريم مرة أخرى وبارك الله فيك ووفقك الله لما يحب ويرضى

أخوك / لؤي (أبو العبد)

#13

أخي الكريم شكراً لك على اهتمامك وقد قمت بتعديل الخطأ حيث أن البرنامج ينفذ جملة if على حسب الترتيب وعندما يجد الجملة الثانية تحقق الشرط يقوم بتنفيذها وهذا هو تعديل البرنامج

/********************************
 *program make you able to Know *
 *        your degree           *
 *    made by alaa alsahi       *
 *******************************/
import javax.swing.*;
public class Hw {
    static int x;
    public static void main(String[] args) {
     x=Integer.parseInt(JOptionPane.showInputDialog(null,"write the degree of student")); 
    if(x>=85&&x<=100)
    JOptionPane.showMessageDialog(null,"this student is Excellent"); 
    else if(x>=75&&x<=100)
    JOptionPane.showMessageDialog(null,"this student is VGOOD"); 
    else if(x>=65&&x<=100)
    JOptionPane.showMessageDialog(null,"this student is GOOD"); 
    else if(x>=55&&x<=100)
    JOptionPane.showMessageDialog(null,"this student is ACCEPTED"); 
    else if(x<=55&&x>=0)
    JOptionPane.showMessageDialog(null,"this student is Failed");
    else{
    JOptionPane.showMessageDialog(null,"please write number between 0-100");
    main(args);
    }
    System.exit(0);
    }
    
}

وشكراً جزيلاً

حزمة المحرك الإصدارة 0.8

أي أحد يجد أني ظلمته فليراسلني

وبإذن الله لو كان له حق سيأخذه

728x90.png

#14

السلام عليكم

شاطر يا أخى العزيز/ علاء

الواجب مضبوط وتستاهل 10 من 10

ونجمتين كمان

اللهم إنك عالم بحالى وغنى عن سؤالى فأهدنى وأصلح لى بالى

#15

بسم الله الرحمن الرحيم

كما قال لك أخي الكريم حسين huss22us فعلا الواجب 10 على 10 بارك الله فيك

وإلى الأمام دائما

أخوك / لؤي (أبو العبد)

#16

بسم الله الرحمن الرحيم

الأخ الكريم eng_ibr

إليك أخي الكريم مواقع أخرى تتعلق بكتب جافا وغيرها من الكتب وها هو الرابط

http://zikri.indoglobal.com/books.html

#17

اخي الكريم

انت تخطيت السطر الاول من الشرح

مامعنى هذا الكود

package courseexampels;

انا في انتظارك

#18

ايضا كلمة Null في رسالة العرض مامفهومها

JOptionPane.showMessageDialog(null,"Result OF Addition"+z);

وهل اقد ان استبدلها بكلمة اخرى

كنت اعتقد انها عنوان الرسالة وغيرتها الى "Message Majed"

ولكن لم يتغير شييء

مامعناها

#19

السلام عليكم

أخى العزيز mn_902

أولا: أرحب بإنضمامك بالدورة

ثانيا: موضوع ال package تم تخطيه لأنه سيكون موضوعاً متقدماً ولكن من الممكن أن نوضح أن ال package هى كمشروع يحتوى على عدة ملفات فمثلاً فى السى يكون هناك مشروعاَ يحتوى على header files وكذلك cpp والبرنامج ينتظر ظهور الدالة main لكى يتم تنفيذها ألأيس كذلك؟؟

إنها بالضبط نفس الفكرة حيث قمت بعمل هذه ال package لأضع بها كل الأمثلة المدرجة فى دروسى وأقوم بعمل إختبار لها.

ثالثاً: موضوع ال null وجدت أن معظم الكتب التى قرأت فيها لا توضح بالضبط ماهية هذا المتغير ولكن ما وجدته أنه دائما مي اكون ب null

أرجو أن أكون قد أوضحت

وأسف إن كنت تأخرت فى الرد

اللهم إنك عالم بحالى وغنى عن سؤالى فأهدنى وأصلح لى بالى

#20

علم

بارك الله فيك

اقتباس
وأسف إن كنت تأخرت فى الرد

معذورين والغائب حجته معاه

#21

بالنسبة لnull فهي لجعل الإطار في منتصف الشاشة

اللهم انفعنا بما علمتنا وعلمنا ما ينفعنا

أخوكم علاء

حزمة المحرك الإصدارة 0.8

أي أحد يجد أني ظلمته فليراسلني

وبإذن الله لو كان له حق سيأخذه

728x90.png

#22

مشكوووووور اخوي علاء

الله يوفقك ان شاء الله

ويرحم والديك

#23

جزاك الله كل خير ، هي مشابهة تماما للسي والسي شارب

Name : Ahmed H. Alawady

Web Site : Alawady.info

Email : alawady_ahmed@hotmail.com

Tel : +2 012 345 6808

#24

السلام عليكم

كل ما نستطيع قولة ...............بارك الله فيكم وجازاكم عنا خير ولو ممكن كتاب بالعربي مفيد

اخوكم نصر بوزيد

#25
nasser buzid كتب:
السلام عليكم

كل ما نستطيع قولة ...............بارك الله فيكم وجازاكم عنا خير ولو ممكن كتاب بالعربي مفيد

اخوكم نصر بوزيد

حياك الله أخي الكريم وهذا الرابط لعيونك

/index.php?showtopic=99101

أي مساعدة لا تتردد وإن لم أرد عليك أرسل رسالة خاصة أو على إيميلي :

loayyn@yahoo.com

أخوك في الله / لؤي (أبو العبد)

هذا الموضوع مغلق.

مواضيع مشابهة