منتديات شبكة الجيل الجديد للتكنولوجيا
 
أقسام موقع ITNAT        
 
 
 

 
 

شاهد الدورات المتاحة الآن وصوت ماهي الدورة الأفضل بالنسبة لك،، اضغط هنا

 

 
 
العودة   ITNAT.COM Forums > الأرشيف > أرشيف منتدى ITNAT لغاية تاريخ 20 - 5 - 2008 > القسم العام > منتدى تبادل الخبرات والمعارف

منتدى تبادل الخبرات والمعارف اي أكتشاف من قبل الشخص ويهتم بالهندسة العكسية وما لها ومميزات وعيوب الأنظمة والبرامج، وأخبار الكمبيوتر والتعليم الإلكتورني والمشاكل الشائعة

رد
 
أدوات الموضوع طرق مشاهدة الموضوع
قديم 07-05-2006, 10:39 AM   #1
loayy
شبكي نشيط
 
تاريخ التسجيل: Sep 2004
المشاركات: 144
افتراضي الدرس الرابع في دورة الجافا : الجمل الشرطية

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

هذا الدرس ليس من تأليفي وإنما من تأليف أخ كريم لي أسمه huss2us (حسين) من منتدى برامج العرب [عزيزي الزائر يتوجب عليك التسجيل للمشاهدة الرابطللتسجيل اضغط هنا]

لذا أرجو بعد إذنكم الدعاء لي وله

وإليكم الدرس كما هو دون تغيير

* * * * * * * *

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

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

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

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

الجمل الشرطية "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 فى الدرس القادم

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

* * * * * * * *

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

لا تنسونا من صالح دعائكم

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

التعديل الأخير تم بواسطة : loayy بتاريخ 07-05-2006 الساعة 10:44 AM.
loayy غير متواجد حالياً  
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
رد مع اقتباس
قديم 07-05-2006, 10:49 AM   #2
fmfm
مشرف إداري
 
الصورة الرمزية fmfm
 
تاريخ التسجيل: Mar 2005
المشاركات: 2,257
افتراضي

بارك الله فيك ...............

سابدا من اليوم التطبيق ...............


تم تعديل الفهرس
__________________
fmfm
-----------------------------------------------------

fmfm غير متواجد حالياً  
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
رد مع اقتباس
قديم 07-05-2006, 10:54 AM   #3
loayy
شبكي نشيط
 
تاريخ التسجيل: Sep 2004
المشاركات: 144
افتراضي

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

وبارك الله فيك أخي الكريم فادي وجزاك الله كل خير على تعديل الفهرس

ووفقك الله في التطبيق وإن شاء الله أي سؤال لا تتردد

أخوك المحب لك في الله / لؤي (أبو العبد)
loayy غير متواجد حالياً  
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
رد مع اقتباس
قديم 07-05-2006, 12:46 PM   #4
fmfm
مشرف إداري
 
الصورة الرمزية fmfm
 
تاريخ التسجيل: Mar 2005
المشاركات: 2,257
افتراضي

اخ لؤي حاولت التطبيق ..........

لكن المشكله انك اعطيتنا ان معامل السؤال للنص هو if(operation.equalsIgnoreCase

ماذا عن الارقام ؟؟
هل if x>100 صحيح ؟

__________________
fmfm
-----------------------------------------------------

fmfm غير متواجد حالياً  
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
رد مع اقتباس
قديم 08-05-2006, 08:59 AM   #5
loayy
شبكي نشيط
 
تاريخ التسجيل: Sep 2004
المشاركات: 144
افتراضي

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

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

بالنسبة لسؤالك :

ماذا عن الارقام ؟؟
هل if x>100 صحيح ؟

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

أما بالنسبة للتطبيق فإن جميع البرامج الواردة في الدرس كلها تعمل فالمثال الأول
كود:
public class IFexample
يطلب منك أن تذكر الرقم الأول ثم الرقم الثاني ثم إذا أردت جمع الرقمين أكتب add وإذا أردت طرح الرقمين أكتب sub
لكن هناك ملاحظة هامة هي أنك حتى يعمل البرنامج أحذف الجملة التالية :

كود:
package courseexampels;
لأن هذه الجملة معناها أن تقوم بتخزين البرنامج في في كتلة package خاصة وإن لم تكن منشئ هذه الكتلة مسبقا فإن البرنامج لن يعطي أي خطأ ولكن لن تظهر لك أي نتيجة لذلك احذف هذه الجملة

أما المثال الثاني

كود:
public class IFElse
فعمله نفس عمل البرنامج الأول مع اختلاف بسيط أنه يقوم بجمع رقمين فقط أي أنه لا يقوم بطرح الرقمين فقط الجمع
أما المثال الثالث والأخير
كود:
public class NestedIfElse
فعمله نفس عمل البرنامجين الأول والثاني غير أنه يعطيك خيار جمع أو طرح أو ضرب أو قسمة الأرقام فإذا وضعت له كلمة add يجمع الرقمين وإذا وضعت كلمة sub يطرح الرقمين وإذا وضعت كلمة mul يضرب الرقمين وإذا وضعت كلمة div يعطيك حاصل قسمة الرقمين

ملاحظة هامة وأخيرة

فقط في كل مثال تجد فيه الجملة التالية

كود:
package courseexampels;
عليك أن تحذفها وبعون الله البرنامج يعمل بإذن الله

حيث جربت البرامج الثلاثة وجميعا عمل والحمد لله بعد حذف هذه الجملة

أرجو أن تكون الأمور واضحة ولا تتردد في طرح أي سؤال

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

التعديل الأخير تم بواسطة : loayy بتاريخ 08-05-2006 الساعة 09:08 AM.
loayy غير متواجد حالياً  
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
رد مع اقتباس
قديم 08-05-2006, 12:37 PM   #6
fmfm
مشرف إداري
 
الصورة الرمزية fmfm
 
تاريخ التسجيل: Mar 2005
المشاركات: 2,257
افتراضي

قصدي بالنسبه للواجب ....:

حيث مطلوب
عمل لوب للتاكد من الارقام المدخله واعطاء رد حسب الرقم...........
__________________
fmfm
-----------------------------------------------------

fmfm غير متواجد حالياً  
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
رد مع اقتباس
قديم 09-05-2006, 09:44 AM   #7
loayy
شبكي نشيط
 
تاريخ التسجيل: Sep 2004
المشاركات: 144
افتراضي

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

أخي الكريم / فادي

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

بالنسبة للواجب طبعا برمجيا وحتى يكون البرنامج صحيحا يجب أن لا يكون الرقم المدخل (أي العلامة لا أكبر من 100 ولا أقل من 0)

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

أرجو أن يكون هذا ما قصدت من سؤالك أخي فادي

أخوك في الله / لؤي (أبو العبد)
loayy غير متواجد حالياً  
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
رد مع اقتباس
قديم 09-05-2006, 05:55 PM   #8
Bill_Gates
Super Moderator
 
الصورة الرمزية Bill_Gates
 
تاريخ التسجيل: Dec 2004
الدولة: تحيا دولة الحقـراء
المشاركات: 2,434
افتراضي



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

مشكور وبارك الله بيك,,, وجزاك الله والأخ الكريم خير الجزاء
__________________
-^- لو وضعت ما يصلني من برامج كاملة يومياً*-* لن يكفي لها قسم كامل-^-
-^- لو وضعت ما يصلني من برامج كاملة يومياً*-*لن يكفي لها منتدى كامل-^-
-^-لو وضعت ما أجربه من برامج كاملة يومياً*-* لن يكفي لها قسم كامل-^-
*-*
أن حـظي كـدقيق فوق شوكٍ بعثروه*-* ثم قالوا لحفاهٍ يوم ريحٍ أجمعوه.
Bill_Gates غير متواجد حالياً  
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
رد مع اقتباس
قديم 10-05-2006, 08:36 AM   #9
loayy
شبكي نشيط
 
تاريخ التسجيل: Sep 2004
المشاركات: 144
افتراضي

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

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

لا شكر على واجب أخي الكريم صالح

وجزاك الله كل خير على الدعاء لي ولأخي في الله / حسين

أخوك المحب لك في الله / لؤي (أبو العبد)
loayy غير متواجد حالياً  
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
رد مع اقتباس
قديم 11-05-2006, 07:36 AM   #10
osamaawed
شبكي
 
تاريخ التسجيل: Apr 2005
المشاركات: 15
افتراضي

ما شاء الله
شد انتباهي التنسيق والترتيب
تقريبا نفس فكرة الحالات في الفيجوال بيزيك
جزاك الله خيرا
osamaawed غير متواجد حالياً  
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
رد مع اقتباس