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

249 lines
7.5 KiB
Markdown
Raw Normal View History

---
title: Conditional Statements
localeTitle: عبارات شرطية
--- # البيانات الشرطية في 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);
`
وأخيرًا ، ينهي بيان الاستراحة عبارة التبديل.
إذا لم يتم استخدام كشف الفاصل ، يتم تنفيذ جميع الحالات بعد الحالة الصحيحة.