freeCodeCamp/guide/arabic/c/conditional-statements/index.md

7.5 KiB

title localeTitle
Conditional Statements عبارات شرطية

البيانات الشرطية في C

تُعرف أيضًا العبارات الشرطية باسم العبارات المتفرعة. هم ما يسمى ذلك لأن البرنامج يختار اتباع فرع واحد أو آخر.

1. إذا كان البيان

هذا هو الشكل الأكثر بساطة من البيانات الشرطية. يتكون من تعبيرات منطقية متبوعة ببيان واحد أو أكثر. إذا تم تقييم التعبير المنطقي إلى true ، فسيتم تنفيذ كتلة الكود داخل العبارة "if". إذا تم تقييم التعبير المنطقي إلى false ، فسيتم تنفيذ أول مجموعة من التعليمات البرمجية بعد نهاية العبارة "if" (بعد قوس التجميع الختامي).

تفترض لغة البرمجة C أي قيم غير صفرية وغير خالية كصيغة وإذا كانت إما صفرية أو خالية ، فيتم افتراضها كقيمة خاطئة .

بناء الجملة

if(boolean_expression) { //Block of Statements executed when boolean_expression is true }

مثال

int a = 100; if(a < 200) { printf("a is less than 200\n" ); }

نتيجة

a is less than 200

2. إذا ... بيان آخر

إذا تم تقييم التعبير المنطقي إلى true ، فسيتم تنفيذ كتلة if ، وإلا سيتم تنفيذ حظر آخر.

بناء الجملة

if(boolean_expression) { //Block of Statements executed when boolean_expression is true } else { //Block of Statements executed when boolean_expression is false }

مثال

int a = 300; if(a < 200) { printf("a is less than 200\n" ); } else { printf("a is more than 200\n"); }

نتيجة

a is more than 200

3. إذا ... آخر إذا ... بيان آخر

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

  • إذا كان يمكن أن يكون صفر أو آخر ، ويجب أن يأتي بعد أي شيء آخر .
  • إذا كان يمكن أن يكون صفر إلى كثير آخر إذا كان يجب أن يأتي قبل الآخرين .
  • مرة واحدة في حالة نجاح أي شيء آخر ، سيتم اختبار أي من بقية الآخرين إذا كان وإلا.

بناء الجملة

if(boolean_expression_1) { //Block of Statements executed when boolean_expression_1 is true } else if(boolean_expression_2) { //Block of Statements executed when boolean_expression_1 is false and boolean_expression_2 is true } else if(boolean_expression_3) { //Block of Statements executed when both boolean_expression_1 and boolean_expression_2 are false and boolean_expression_3 is true } else { //Block of Statements executed when all boolean_expression_1, boolean_expression_2 and boolean_expression_3 are false }

مثال

int a = 300; if(a == 100) { printf("a is equal to 100\n" ); } else if(a == 200) { printf("a is equal to 200\n"); } else if(a == 300) { printf("a is equal to 300\n"); } else { printf("a is more than 300\n"); }

نتيجة

a is equal to 300

4. متداخلة إذا كان البيان

دائمًا ما يكون قانونيًا في برمجة C لتضمين عبارات if-else ، مما يعني أنه يمكنك استخدام عبارة if أو إذا كانت عبارة داخل عبارة أخرى ، أو إذا كان عبارة (عبارات).

بناء الجملة

if(boolean_expression_1) { //Executed when boolean_expression_1 is true if(boolean_expression_2) { //Executed when both boolean_expression_1 and boolean_expression_2 are true } }

مثال

int a = 100; int b = 200; if(a == 100) { printf("a is equal to 100\n" ); if(b == 200) { printf("b is equal to 200\n"); } }

نتيجة

a is equal to 100 b is equal to 200

5. تبديل بيان الحالة

غالبًا ما يكون بيان التبديل أسرع من المتداخلة إذا كان… else (ليس دائمًا). أيضا ، بناء جملة العبارة التبديل هو أنظف وسهلة الفهم.

بناء جملة حالة التبديل

`switch (n) { case constant1: // code to be executed if n is equal to constant1; break;

case constant2: 
    // code to be executed if n is equal to constant2; 
    break; 
    . 
    . 
    . 
default: 
    // code to be executed if n doesn't match any constant 

} `

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

في pseudocode أعلاه ، افترض أن قيمة n تساوي constant2. سيقوم المحول البرمجي بتنفيذ كتلة التعليمات البرمجية المرتبطة مع بيان الحالة حتى نهاية كتلة التبديل ، أو حتى يتم مصادفة بيان الفاصل.

يُستخدم بيان الإيقاف لمنع تشغيل التعليمة البرمجية في الحالة التالية.

مثال:

`// Program to create a simple calculator // Performs addition, subtraction, multiplication or division depending the input from user

include <stdio.h>

int main() {

char operator; 
double firstNumber,secondNumber; 

printf("Enter an operator (+, -, *, /): "); 
scanf("%c", &operator); 

printf("Enter two operands: "); 
scanf("%lf %lf",&firstNumber, &secondNumber); 

switch(operator) 
{ 
    case '+': 
        printf("%.1lf + %.1lf = %.1lf",firstNumber, secondNumber, firstNumber+secondNumber); 
        break; 

    case '-': 
        printf("%.1lf - %.1lf = %.1lf",firstNumber, secondNumber, firstNumber-secondNumber); 
        break; 

    case '*': 
        printf("%.1lf * %.1lf = %.1lf",firstNumber, secondNumber, firstNumber*secondNumber); 
        break; 

    case '/': 
        printf("%.1lf / %.1lf = %.1lf",firstNumber, secondNumber, firstNumber/secondNumber); 
        break; 

    // operator is doesn't match any case constant (+, -, *, /) 
    default: 
        printf("Error! operator is not correct"); 
} 

return 0; 

} `

انتاج |

Enter an operator (+, -, *,): - Enter two operands: 32.5 12.4 32.5 - 12.4 = 20.1

يتم تخزين عامل التشغيل '-' الذي تم إدخاله من قبل المستخدم في متغير المشغل. ويتم تخزين اثنين من المعاملات 32.5 و 12.4 في المتغيرات firstNumber و secondNumber على التوالي.

ثم ، السيطرة على البرنامج يقفز إلى

printf("%.1lf / %.1lf = %.1lf",firstNumber, secondNumber, firstNumber/firstNumber);

وأخيرًا ، ينهي بيان الاستراحة عبارة التبديل.

إذا لم يتم استخدام كشف الفاصل ، يتم تنفيذ جميع الحالات بعد الحالة الصحيحة.