Programming Basics SQL HTML CSS JavaScript Python C++ Java JavaFX Swing Problem Solving English English Conversations Computer Fundamentals Learn Typing

الخوارزمياتجمل الشرط

  • شكل جمل الشرط بشكل عام
  • جملة الشرط if
  • جملة الشرط else
  • جملة الشرط else if

شكل جمل الشرط بشكل عام

في لغات البرمجة يوجد ثلاث جمل متعارف عليها يمكن إستخدامها لوضع شروط تحدد متى يتم تنفيذ كود معين أم لا.
الجمل المستخدمة في وضع الشروط هي if, else if, else.


طريقة كتابتهم ( Syntax )

if ( condition )
{
// إذا كان الشرط صحيحاً نفذ هذا الكود
}
else if ( condition )
{
// إذا كان الشرط صحيحاً نفذ هذا الكود
}
else
{
// نفذ هذا الكود في حال لم يتم التعرّف على الكود في أي شرط
}
if ( condition ) { // إذا كان الشرط صحيحاً نفذ هذا الكود } else if ( condition ) { // إذا كان الشرط صحيحاً نفذ هذا الكود } else { // نفذ هذا الكود في حال لم يتم التعرّف على الكود في أي شرط }

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

جملة الشرط if

if في اللغة العربية تعني "إذا" و هي تستخدم فقط في حال كنت تريد تنفيذ كود معين حسب شرط معين.


المثال الأول

إذا كانت قيمة المتغير S أكبر من 5 إطبع جملة: "S is bigger than 5".

كود الجافا

public class If_Statment {
public static void main (String[] args) {
int S = 0;
if ( S > 5 )
{
System.out.print("S is bigger than 5.");
}
System.out.print("\n");
}
}
public class If_Statment { public static void main (String[] args) { int S = 0; if ( S > 5 ) { System.out.print("S is bigger than 5."); } System.out.print("\n"); } }

نتيجة التشغيل

شرح الكود

  • في البداية, إشتغل البرنامج بدون أي مشكلة و لكنه لم يظهر أي نتيجة لأن الشرط لم يتحقق.


int S = 0;
int S = 0;
  • قمنا بتعريف المتغير S و أعطيناه 0 كقيمة.


if ( S > 5 )
{
System.out.print("S is bigger than 5.");
}
if ( S > 5 ) { System.out.print("S is bigger than 5."); }
  • الآن, إنتبه إلى جملة الشرط if ( S > 5 ) لتعرف كيف سيتعامل الكمبيوتر مع هذا الشرط بدقة.
    • سيرى أولاً قيمة المتغير S و بعد أن يعرف قيمتها سيرى إذا كانت أكبر من 5 أم لا.
    • في حال وجد أن قيمة المتغير S أكبر من 5 سينفذ كل الكود الموجود في حدود جملة الشرط if.
    • في حال لم تكن أكبر منها سيتجاهل كل شيء موجود بداخل جملة الشرط.
    • هنا قام البرنامج بتجاهل الكود الموجود في حدود جملة الشرط لأن قيمة المتغير S ليست أكبر من 5.


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

إذا كانت قيمة المتغير S أكبر من 5 إطبع جملة: "S is bigger than 5".

إنتبه: هذا نفس المثال السابق و لكننا قمنا بتغير قيمة المتغير S فقط.

كود الجافا

public class If_Statment {
public static void main (String[] args) {
int S = 20;
if ( S > 5 )
{
System.out.print("S is bigger than 5.");
}
System.out.print("\n");
}
}
public class If_Statment { public static void main (String[] args) { int S = 20; if ( S > 5 ) { System.out.print("S is bigger than 5."); } System.out.print("\n"); } }

نتيجة التشغيل

شرح الكود

  • في البداية, الفرق بين هذا المثال و المثال السابق أن البرنامج قام بتنفيذ دالة الطباعة الموجودة في حدود جملة الشرط if.


int S = 20;
int S = 20;
  • قمنا بتعريف المتغير S و أعطيناه قيمة 20.


if ( S > 5 )
{
System.out.print("S is bigger than 5.");
}
if ( S > 5 ) { System.out.print("S is bigger than 5."); }
  • هنا قام البرنامج بتنفيذ الكود الموجود في حدود جملة الشرط لأن قيمة المتغير S أكبر من 5.

جملة الشرط else

else في اللغة العربية تعني "أي شيء آخر", و هي تستخدم فقط في حال كنت تريد تنفيذ كود معين لا يطابق أي شرط موجود بداخل الجملة if أو الجمل else if و يجب وضعها دائماً في الأخير, لأنها تستخدم في حال لم يتم تنفيذ أي جملة شرطية قبلها.

إذاً, إذا نفذ البرنامج الجملة if فإنه سيتجاهل الجملة else.
و إذا لم ينفذ أي جملة من الجمل if و else if فإنه سينفذ الجملة else.


مثال

إذا كانت قيمة المتغير name تساوي "Mhamad" إطبع جملة: "This is my name".

كود الجافا

public class If_Else_Statments {
public static void main (String[] args) {
String name = "Mhamad";
if ( name == "Mhamad" )
{
System.out.print("This is my name.");
}
else
{
System.out.print("NOT my name!");
}
System.out.print("\n");
}
}
public class If_Else_Statments { public static void main (String[] args) { String name = "Mhamad"; if ( name == "Mhamad" ) { System.out.print("This is my name."); } else { System.out.print("NOT my name!"); } System.out.print("\n"); } }

نتيجة التشغيل

شرح الكود

  • في هذا البرنامج إستخدمنا الجملتين if و else.
  • قمنا بتعريف المتغير name و أعطيناه قيمة "Mhamad".

  • ركز جيداً على جملة الشرط التالية.
if ( name == "Mhamad" )
if ( name == "Mhamad" )
  • لاحظ أننا وضعنا إثنتين = و ليس واحدة =.
  • وضعنا == للمقارنة, لنرى هل قيمة المتغير name تساوي "Mhamad".
  • بما أن قيمة المتغير name تساوي "Mhamad" فإن الكمبيوتر سينفذ كل الكود الموجود في حدود الجملة if و سيتجاهل الجملة else.

إذا كنت تريد مقارنة متغيرين مع بعضهما لترى إذا كانت قيمهم متساوية, يجب أن تضع بينهما == و ليس =.


لو عدت للمثال السابق و وضعت = بدلاً من == لأدى ذلك إلى خطأ منطقي و ليس برمجي, أي لو كتبت الكود كالتالي:

if ( name = "Mhamad" )
if ( name = "Mhamad" )

في هذه الحالة الكمبيوتر سيظن أنك تريد وضع القيمة "Mhamad" كقيمة جديدة للمتغير name و ليس مقارنة قيمة المتغير name مع القيمة "Mhamad".
كما أنه سيظهر لك خطأ لأنه يجب وضع شرط في الجملة if و ليس إعطاء قيمة لمتغير فقط.

جملة الشرط else if

جملة else if تستخدم إذا كنت تريد وضع أكثر من إحتمال ( أي أكثر من شرط ).
جملة أو جمل الشرط else if يوضعون في الوسط أي بين الجملتين if و else.


مثال

فكرة البرنامج التالي طباعة إسم الشهر على حسب رقمه.
أي إذا كانت قيمة المتغير month تساوي رقم بين 1 و 12 يتم طباعة إسم الشهر.

كود الجافا

public class MonthsOfTheYear {
public static void main (String[] args) {
int month = 3;
if ( month == 1 )
{
System.out.print("January");
}
else if ( month == 2 )
{
System.out.print("February");
}
else if ( month == 3 )
{
System.out.print("March");
}
else if ( month == 4 )
{
System.out.print("April");
}
else if ( month == 5 )
{
System.out.print("May");
}
else if ( month == 6 )
{
System.out.print("June");
}
else if ( month == 7 )
{
System.out.print("Jul");
}
else if ( month == 8 )
{
System.out.print("August");
}
else if ( month == 9 )
{
System.out.print("September");
}
else if ( month == 10 )
{
System.out.print("October");
}
else if ( month == 11 )
{
System.out.print("November");
}
else if ( month == 12 )
{
System.out.print("December");
}
else
{
System.out.print("NOT a Month!");
}
System.out.print("\n");
}
}
public class MonthsOfTheYear { public static void main (String[] args) { int month = 3; if ( month == 1 ) { System.out.print("January"); } else if ( month == 2 ) { System.out.print("February"); } else if ( month == 3 ) { System.out.print("March"); } else if ( month == 4 ) { System.out.print("April"); } else if ( month == 5 ) { System.out.print("May"); } else if ( month == 6 ) { System.out.print("June"); } else if ( month == 7 ) { System.out.print("Jul"); } else if ( month == 8 ) { System.out.print("August"); } else if ( month == 9 ) { System.out.print("September"); } else if ( month == 10 ) { System.out.print("October"); } else if ( month == 11 ) { System.out.print("November"); } else if ( month == 12 ) { System.out.print("December"); } else { System.out.print("NOT a Month!"); } System.out.print("\n"); } }

نتيجة التشغيل

إذا قمت بتغيير قيمة المتغير month فإن النتيجة ستتغير أيضاً.

شرح الكود

  • في هذا البرنامج إستخدمنا الجمل if و else if و else.
  • قمنا بتعريف المتغير month و أعطيناه قيمة 3 لأننا نريد طباعة إسم الشهر الثالث.
  • بما أنه عندنا 12 شهراً, إذاً عندنا 12 إحتمال.
  • 12 إحتمال يعني أنه يوجد جملة if واحدة بالإضافة إلى 11 جملة else if بعدها.
  • في النهاية وضعنا الجملة else لأنه إن كان الرقم الموضوع في المتغير month ليس بين 1 و 12 فلا يمكن أن يكون رقم لشهر.

طريقة تعامل البرنامج مع الشروط


لو وضعنا if بدل كل else if سيؤدّي ذلك إلى أخطاء عدة في الكود
والسبب أن البرنامج سيقوم باختبار جميع الجمل if و حين يصل لآخر جملة if سيرى إن كانت قيمة المتغير month تساوي 12 أم لا و حين يجدها لا تساوي 12 سيقوم بتنفيذ الجملة else و بالتالي ستظهر لك نتيجة خاطئة.


ضع if بدل كل else if, ثم قم بتشغيل البرنامج و لاحظ كيف أنه سينفذ أيضاً الجملة else و سيعطيك النتيجة التالية عند تشغيله.

نتيجة التشغيل

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


دورة تعلم البرمجة للمبتدئين >

الدورات

أدوات مساعدة

أقسام الموقع

دورات
مقالات كتب مشاريع أسئلة