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

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

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

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

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

إن شاء الله موعدنا اليوم مع الدرس الخامس

وسنكمل موضوعنا عن الجمل الشرطية الإختيارية والتكرارية "conditional statements" وسنبدأ بأخر جملة فى الجمل الشرطية الإختيارية " selection " وهى جملة ال " switch " ثم نتحدث عن الجمل الشرطية التكرارية " loops "

أولا : switch

وتكتب هكذا

switch ( متغير )
{
   case حالة 1 :
     // مجموعة  الأوامر التى  ستنفذ  عندما   يساوى المتغير الحالة 1
    break;
  case حالة 2 :
     //مجموعة  الأوامر التى  ستنفذ  عندما   يساوى المتغير الحالة2 
    break;
  default :
   // مجموعة الأوامر التى ستنفذ عندما لا يساوى المتغير أى حاله 
}

و لننظر المثال التالى ونفهمه سويا

وهو يعتبر تقريبا نفس المثال السابق ولكن إستخدمنا ال switch بدلا من ال if

package courseexampels;
import javax.swing.JOptionPane;

public class Switchexample
{
  public static void main(String[] args)
  {
      int  x,y,z;
      int  choice;
      x = Integer.parseInt(JOptionPane.showInputDialog("enter x"));
      y= Integer.parseInt(JOptionPane.showInputDialog("enter y"));
      choice = Integer.parseInt(JOptionPane.showInputDialog("enter 1 for addition 2 for substraction 3 for multiplication 4 for division "));

      switch (choice)
      {
        case 1:
        z=x+y;
        JOptionPane.showMessageDialog(null,"the addition result is "+ z);
        break;

        case 2:
        z=x-y;
        JOptionPane.showMessageDialog(null,"the substraction  result is "+ z);
        break;

        case 3:
        z=x*y;
        JOptionPane.showMessageDialog(null,"the multiplication  result is "+ z);
        break;

        case 4:
        z=x/y;
        JOptionPane.showMessageDialog(null,"the division  result is "+ z);
        break;

        default :
        JOptionPane.showMessageDialog(null," you didn't choose any valid option ");
      }

    System.exit(0);
  }
}

ولنشرح المثال الأن :

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

لقد وضعنا إسم المتغير فى الswitch لنجرى عليه الإختبارات فى الحالات cases

عند السطر case 1 يتم إختبار المتغير إذا ما كان يساوى 1 أم لا فإذا كان ما يساوى 1 فإنة يتم تنفيذ ما يليه حيث يتم جمع المتغيرين x,y ثم طبع النتيجة فى رسالة على الشاشه ثم يتم تنفيذ الbreake حيث يتم تنفيذ ما بعد ال switch أى الخروج من ال switch أما إذا لم يساوى المتغير 1 فإنه يتم إختبار ما إذا كان يساوى 2 أم لا فإذا كان ما يساوى2 فإنة يتم تنفيذ ما يليه حيث يتم طرح المتغيرين x,y ثم طبع النتيجة فى رسالة على الشاشه ثم يتم تنفيذ الbreake حيث يتم تنفيذ ما بعد ال switch أى الخروج من ال switch أما إذا لم يساوى المتغير 2 فإنه يتم إختبار ما إذا كان يساوى 3 أم لا وهكذا حتى نصل إلى أن المتغير لا يساوى أى خيار من الخيارات المتاحه وعندها يتم تنفيذ الكود الخاص بال default حيث تخرج رسالة إلى المستخدم تخبره بأنه إختار رقم لايحقق أى عملية

ملحوظة : ما هى فائدة الbreake ؟؟؟

عند عدم إستخدام ال breake يتم تنفيذ ما يحقق الشرط وما يلى هذه ال case مثلا إذا قام المستخدم بإدخال رقم 2 فإنه سيتم تنفيذ الحالة الخاصة بالرقم 2 وما يليها أى الخاصة ب 3،4 وكذلك ال default وهو ما لا نريده ولذا نستخدم الbreake

الواجب الخاص بالswitch هو تنفيذ الواجب الخاص بالدرس السابق بإستخدام الswitch

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

أولا : جملة ال for

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

For (int i=0;condition;i++)
{
  // الأوامر التى ستنفذ هنا
}

إذا قمنا بكتابة ال for بهذه الطريقة فإن الكود سينفذذ منذ أن يكون المتغير يساوى صفراً وحتى يتحقق الشرط ويزداد المتغير بواحد عند نهاية الكود فى كل مرة ينفذ فيها ولنرى سويا المثال التالى على هذه الطريقة

package courseexampels;
import javax.swing.JOptionPane;

public class forexample
{
   public static void main ( String args[])
   {
      int  x,result;
       result = 1;
       x =Integer.parseInt(JOptionPane.showInputDialog("enter  x" ));

       for(int j=1;j<=x;j++)
          result = result * j;

      JOptionPane.showMessageDialog(null,"the factorial result = " + result);
       System.exit(0);
    }
}

يقوم المثال بحساب المضروب للرقم الذى يدخله المستخدم والمضروب "factorial " هو ضرب الأعداد من واحد وحتى الرقم المدخل من قبل المستخدم فمثلا مضروب 4 يساوى 24 ( 1*2*3*4) وهكذا

واللبرنامج كما هو واضح سهل وبسيط ولننظر سويا إلى إلى البرنامج ولنبدأ الشرح سويا قمنا بتعريف متغيرين هما x و result وسنستخدم الأول لنضع به الرقم المدخل من المستخدم والأخر لنضع به النتيجه النهائيه ووضعنا له قيمة مبدئيه تساوى واحد

وقمنا بإستخدام الfor لعملية الضرب التكراريه

حيث عرفنا متغير j ووضعنا قيمة مبدئية له تساوى 1 وقارنا ال j بال x فإذا كان يساويه أو أقل منه فإننا نضرب ال result فى ال j ثم نضع النتيجة فى result مرة أخرى ثم تزداد قيمة ال j بواحد وتتم المقارنة مرة أخرى وهكذا حتى يصبح الj أكبر من ال x وهنا لايتم تنفيذ ال for ويتم ظهور رسالة بها نتيجة العملية الحسابية

الواجب الخاص بال for هو عمل برنامج يقوم بحساب رقم أس رقم أخر

مثال 3 أس 2 = 3*3 =9

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

1

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

#2

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

جزاك الله خيرا أخي huss22us (حسين) وبارك الله فيك وإلى الأمام أخي الكريم

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

#3

يعطيك الف عافية

شرح جميل

والى الامام

#4

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

أما بعد

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

بالنسبة للواجب التابع لدرس case فإنه لا يمكنك القيام به إلا بالتحايل على case باستخدام if وذلك لأن القيم التي يفترض أن يحتويها case يفترض أن تكون من نوع int وليس من نوع boolean وسيكون الواجب كالتالي

/*******************************
 *   program make you able to Know    *
 *                   your degree                    *
 *             made by alaa alsahi              *
 *******************************/
import javax.swing.*;
public class Hw2 {
    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)
    x=1;
    else if(x>=75&&x<=100)
    x=2; 
    else if(x>=65&&x<=100)
    x=3; 
    else if(x>=55&&x<=100)
    x=4; 
    else if(x<=55&&x>=0)
    x=5;
    switch(x){
    case 1:
    System.out.print("this student is exellent");
    break;
        case 2:
        System.out.print("this student is Vgood");
        break;
            case 3:
            System.out.print("this student is good");
            break;
                case 4:
                System.out.print("this student is Accepted");
                break;
                    case 5:
                    System.out.print("this student is failed");
                    break;
                        default:    
                        JOptionPane.showMessageDialog(null,"please write number between 0-100");
                        main(args);
    }
    System.exit(0);
    }
    
}
حزمة المحرك الإصدارة 0.8

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

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

728x90.png

#5

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

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

بالنسبة لواجب for فإن الجواب كالتالي

/**************************
 *                      x^                      *
 *          calculate x pow y           *
 *      design by alaa alsalhi         *
 **************************/
import javax.swing.*;
public class Hw3 {
    public static void main(String args[]){
    int x=Integer.parseInt(JOptionPane.showInputDialog("write the number"));
    int y=Integer.parseInt(JOptionPane.showInputDialog("write the power"));
    int z=1;
    for(int i=0;i<y;i++)
    z*=x;
    System.out.print(x+"^"+y+" = "+z);
    System.exit(0);
    }
}
حزمة المحرك الإصدارة 0.8

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

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

728x90.png

#6

السلام عليكم

أخى العزيز / علاء

أولا :أشكرك لإهتمامك بالدوره والدروس

ثانيا: برافو عليك إنك أخدت بالك من حل الواجب الخاص بال switch

وتأخد 10/10 فى الواجب كله ونجمتين كمان **

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

#7

يعطيك العافية على تعبك أخي العزيز

تمنياتي لك بالتوفيق و الناجح

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

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

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

728x90.png

#8

تسلمووووووووووووووو

#9

شكرا لك اخوي

وبما انك وصلت لشرح

loops

انا عندي سؤال مو راضي يصير حاولت فيه مرارا وتكرارا وبكرة عندي امتحان فيه فقاعدة ادرس من دروسك شويوياريت تساعدني

the doctor just gave us the output and we have to make the program by using while loop

the output is 0112358

how do we make it

and i tried to do it like this

 Public static void main(String[] args) {
int i=0;
int x=1;
int y=2;
while (i<=8)
{
System.out.println(i);
i=i+1
System.out.println(x);
x=x+1
System.out.println(y);
y=y+1

ياريت احصل ردك في اسرع وقت

وتسلم

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

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