نوع البيانات الصحيح، يُستخدم لتخزين الأعداد الصحيحة.
int age = 25;
نوع البيانات عائم الفاصلة الواحدة، يُستخدم لتخزين أعداد عشرية بدقة منخفضة.
عند تعريف قيمة عشرية، يُضاف الحرف "f" للدلالة على أنها عشرية.
float price = 12.99f;
نوع البيانات عائم الفاصلة المزدوجة، يُستخدم لتخزين أعداد عشرية بدقة أعلى من الـ float.
double salary = 50000.75;
نوع البيانات العشري عالي الدقة، يُستخدم لتخزين أعداد عشرية بدقة عالية.
عند تعريف قيمة عشرية بنوع الـ `decimal`، يُضاف الحرف "M" في النهاية.
decimal totalAmount = 1234.5678M;
نوع البيانات الحرفي، يُستخدم لتخزين حرف واحد فقط.
char grade = 'A';
نوع البيانات النصي، يُستخدم لتخزين سلاسل النصوص مثل الأسماء.
string name = "أحمد";
نوع البيانات الثنائي، يُستخدم لتخزين القيم المنطقية (صحيح أو خطأ).
bool isStudent = true;
نوع البيانات الصحيح الصغير، يُستخدم لتخزين الأعداد الصحيحة الصغيرة.
byte age = 30;
نوع البيانات الصحيح القصير، يُستخدم لتخزين الأعداد الصحيحة المتوسطة.
short population = 15000;
نوع البيانات الصحيح الطويل، يُستخدم لتخزين الأعداد الصحيحة الكبيرة.
long worldPopulation = 7800000000;
نوع البيانات الصحيح بدون علامة، يُستخدم لتخزين الأعداد الصحيحة الإيجابية.
uint distance = 500;
نوع البيانات الصحيح القصير بدون علامة، يُستخدم لتخزين الأعداد الصحيحة الإيجابية المتوسطة.
ushort itemCount = 100;
نوع البيانات الصحيح الطويل بدون علامة، يُستخدم لتخزين الأعداد الصحيحة الإيجابية الكبيرة.
ulong bigNumber = 12345678901234567890;
يمثل قيم صحيحة من 0 إلى 255. يستخدم عادة لتمثيل البيانات بالبايتات.
التوقيع: Unsigned (يحتوي فقط على أعداد موجبة)
byte minValue = byte.MinValue; // أدنى قيمة ممكنة: 0
byte maxValue = byte.MaxValue; // أعلى قيمة ممكنة: 255
byte value = 150; // قيمة ممثلة بالبايت
Console.WriteLine(value); // النتيجة: 150
Console.WriteLine(minValue); // أدنى قيمة: 0
Console.WriteLine(maxValue); // أعلى قيمة: 255
الحجم: 1 بايت
.NET Type: System.Byte
يمثل قيم صحيحة من -128 إلى 127.
التوقيع: Signed (يمكن أن يحتوي على أعداد سالبة وموجبة)
sbyte minValue = sbyte.MinValue; // أدنى قيمة ممكنة: -128
sbyte maxValue = sbyte.MaxValue; // أعلى قيمة ممكنة: 127
sbyte value = -50; // قيمة صحيحة سالبة
Console.WriteLine(value); // النتيجة: -50
Console.WriteLine(minValue); // أدنى قيمة: -128
Console.WriteLine(maxValue); // أعلى قيمة: 127
الحجم: 1 بايت
.NET Type: System.SByte
يمثل قيم صحيحة من -32,768 إلى 32,767.
التوقيع: Signed (يمكن أن يحتوي على أعداد سالبة وموجبة)
short minValue = short.MinValue; // أدنى قيمة ممكنة: -32,768
short maxValue = short.MaxValue; // أعلى قيمة ممكنة: 32,767
short value = 10000; // قيمة صحيحة
Console.WriteLine(value); // النتيجة: 10000
Console.WriteLine(minValue); // أدنى قيمة: -32,768
Console.WriteLine(maxValue); // أعلى قيمة: 32,767
الحجم: 2 بايت
.NET Type: System.Int16
يمثل قيم صحيحة من 0 إلى 65,535.
التوقيع: Unsigned (يحتوي فقط على أعداد موجبة)
ushort minValue = ushort.MinValue; // أدنى قيمة ممكنة: 0
ushort maxValue = ushort.MaxValue; // أعلى قيمة ممكنة: 65,535
ushort value = 5000; // قيمة صحيحة
Console.WriteLine(value); // النتيجة: 5000
Console.WriteLine(minValue); // أدنى قيمة: 0
Console.WriteLine(maxValue); // أعلى قيمة: 65,535
الحجم: 2 بايت
.NET Type: System.UInt16
يمثل قيم صحيحة من -2,147,483,648 إلى 2,147,483,647.
التوقيع: Signed (يمكن أن يحتوي على أعداد سالبة وموجبة)
int minValue = int.MinValue; // أدنى قيمة ممكنة: -2,147,483,648
int maxValue = int.MaxValue; // أعلى قيمة ممكنة: 2,147,483,647
int value = 1000000; // قيمة صحيحة
Console.WriteLine(value); // النتيجة: 1000000
Console.WriteLine(minValue); // أدنى قيمة: -2,147,483,648
Console.WriteLine(maxValue); // أعلى قيمة: 2,147,483,647
الحجم: 4 بايت
.NET Type: System.Int32
يمثل قيم صحيحة من 0 إلى 4,294,967,295.
التوقيع: Unsigned (يحتوي فقط على أعداد موجبة)
uint minValue = uint.MinValue; // أدنى قيمة ممكنة: 0
uint maxValue = uint.MaxValue; // أعلى قيمة ممكنة: 4,294,967,295
uint value = 2000000; // قيمة صحيحة
Console.WriteLine(value); // النتيجة: 2000000
Console.WriteLine(minValue); // أدنى قيمة: 0
Console.WriteLine(maxValue); // أعلى قيمة: 4,294,967,295
الحجم: 4 بايت
.NET Type: System.UInt32
يمثل قيم صحيحة من -9,223,372,036,854,775,808 إلى 9,223,372,036,854,775,807.
التوقيع: Signed (يمكن أن يحتوي على أعداد سالبة وموجبة)
long minValue = long.MinValue; // أدنى قيمة ممكنة: -9,223,372,036,854,775,808
long maxValue = long.MaxValue; // أعلى قيمة ممكنة: 9,223,372,036,854,775,807
long value = 123456789012345; // قيمة صحيحة
Console.WriteLine(value); // النتيجة: 123456789012345
Console.WriteLine(minValue); // أدنى قيمة: -9,223,372,036,854,775,808
Console.WriteLine(maxValue); // أعلى قيمة: 9,223,372,036,854,775,807
الحجم: 8 بايت
.NET Type: System.Int64
يمثل قيم صحيحة من 0 إلى 18,446,744,073,709,551,615.
التوقيع: Unsigned (يحتوي فقط على أعداد موجبة)
ulong minValue = ulong.MinValue; // أدنى قيمة ممكنة: 0
ulong maxValue = ulong.MaxValue; // أعلى قيمة ممكنة: 18,446,744,073,709,551,615
ulong value = 987654321012345; // قيمة صحيحة
Console.WriteLine(value); // النتيجة: 987654321012345
Console.WriteLine(minValue); // أدنى قيمة: 0
Console.WriteLine(maxValue); // أعلى قيمة: 18,446,744,073,709,551,615
الحجم: 8 بايت
.NET Type: System.UInt64
تُستخدم لجمع قيمتين معًا.
int result = 5 + 3; // النتيجة هنا ستكون 8
تُستخدم لطرح قيمة من قيمة أخرى.
int difference = 10 - 4; // النتيجة هنا ستكون 6
تُستخدم لضرب قيمتين معًا.
int product = 3 * 7; // النتيجة هنا ستكون 21
تُستخدم لقسمة قيمة على قيمة أخرى.
int quotient = 15 / 3; // النتيجة هنا ستكون 5
تُستخدم للحصول على باقي القسمة بين قيمتين.
int remainder = 10 % 3; // النتيجة هنا ستكون 1
تُستخدم لزيادة قيمة متغير بمقدار واحد.
int counter = 0;
counter++; // الآن قيمة counter ستصبح 1
تُستخدم لنقص قيمة متغير بمقدار واحد.
int tries = 3;
tries--; // الآن قيمة tries ستصبح 2
تُستخدم لجمع قيمة بمقدار محدد وتخزين النتيجة في المتغير نفسه.
int score = 100;
score += 20; // الآن قيمة score ستصبح 120
تُستخدم لطرح قيمة بمقدار محدد وتخزين النتيجة في المتغير نفسه.
int money = 50;
money -= 10; // الآن قيمة money ستصبح 40
تُستخدم لضرب قيمة بمقدار محدد وتخزين النتيجة في المتغير نفسه.
int total = 5;
total *= 4; // الآن قيمة total ستصبح 20
تُستخدم لقسمة قيمة على مقدار محدد وتخزين النتيجة في المتغير نفسه.
int quantity = 24;
quantity /= 3; // الآن قيمة quantity ستصبح 8
تُستخدم لجعل قيمة متغير سالبة.
int negativeNumber = -7; // قيمة negativeNumber ستكون -7
تُستخدم لمقارنة قيمتين لمعرفة إذا كانت متساويتين أم لا.
int x = 5, y = 7;
bool result = x == y; // النتيجة هنا ستكون false
تُستخدم لمقارنة قيمتين لمعرفة إذا كانت غير متساويتين.
int a = 10, b = 10;
bool result = a != b; // النتيجة هنا ستكون false
تُستخدم للتحقق إذا كانت قيمة أولى أكبر من قيمة ثانية.
int age = 25, legalAge = 18;
bool result = age > legalAge; // النتيجة هنا ستكون true
تُستخدم للتحقق إذا كانت قيمة أولى أصغر من قيمة ثانية.
int price = 50, budget = 100;
bool result = price < budget; // النتيجة هنا ستكون true
تُستخدم للتحقق إذا كانت قيمة أولى أكبر من أو تساوي قيمة ثانية.
int score = 90, passingScore = 70;
bool result = score >= passingScore; // النتيجة هنا ستكون true
تُستخدم للتحقق إذا كانت قيمة أولى أصغر من أو تساوي قيمة ثانية.
int temperature = 15, freezingPoint = 0;
bool result = temperature <= freezingPoint; // النتيجة هنا ستكون false
تُستخدم للتحقق من صحة شرطين معًا.
bool isHot = true, isSummer = true;
bool result = isHot && isSummer; // النتيجة هنا ستكون true
تُستخدم للتحقق من صحة أحد الشروط على الأقل.
bool isRainy = false, isSnowy = true;
bool result = isRainy || isSnowy; // النتيجة هنا ستكون true
تُستخدم لعكس قيمة الشرط، مثلاً إذا كان الشرط صحيحًا، فسيصبح غير صحيح والعكس بالعكس.
bool isSunny = true;
bool result = !isSunny; // النتيجة هنا ستكون false
تُستخدم لإجراء منطقي AND بين كل بت في القيمتين.
int value1 = 5; // قيمة بتوجهات 0101
int value2 = 3; // قيمة بتوجهات 0011
int result = value1 & value2; // النتيجة هنا ستكون 0001 (1)
تُستخدم لإجراء منطقي OR بين كل بت في القيمتين.
int value1 = 5; // قيمة بتوجهات 0101
int value2 = 3; // قيمة بتوجهات 0011
int result = value1 | value2; // النتيجة هنا ستكون 0111 (7)
تُستخدم لإجراء منطقي XOR بين كل بت في القيمتين (تكرار أو تكرار خارجي).
int value1 = 5; // قيمة بتوجهات 0101
int value2 = 3; // قيمة بتوجهات 0011
int result = value1 ^ value2; // النتيجة هنا ستكون 0110 (6)
تُستخدم لنقل البتات في القيمة إلى اليمين بمقدار محدد.
int number = 8; // قيمة بتوجهات 1000
int result = number >> 2; // النتيجة هنا ستكون 0010 (2)
تُستخدم لنقل البتات في القيمة إلى اليسار بمقدار محدد.
int number = 4; // قيمة بتوجهات 0100
int result = number << 2; // النتيجة هنا ستكون 0001 (16)
تُستخدم لتغيير الصفرات إلى واحد والعكس بالعكس في كل بت.
int value = 5; // قيمة بتوجهات 0101
int result = ~value; // النتيجة هنا ستكون 1010 (-6)
تُستخدم لجمع قيمة مع متغير ثم تعيين النتيجة للمتغير.
int number = 5;
number += 3; // النتيجة هنا ستكون 8
تُستخدم لطرح قيمة من متغير ثم تعيين النتيجة للمتغير.
int total = 15;
total -= 7; // النتيجة هنا ستكون 8
تُستخدم لضرب قيمة مع متغير ثم تعيين النتيجة للمتغير.
int quantity = 4;
quantity *= 3; // النتيجة هنا ستكون 12
تُستخدم لقسمة قيمة مع متغير ثم تعيين النتيجة للمتغير.
int totalAmount = 30;
totalAmount /= 2; // النتيجة هنا ستكون 15
تُستخدم للحصول على الباقي من قسمة متغير مع قيمة ثم تعيين النتيجة للمتغير.
int count = 17;
count %= 5; // النتيجة هنا ستكون 2
تُستخدم لنقل البتات في القيمة إلى اليمين بمقدار محدد وتعيين النتيجة للمتغير.
int num = 16; // قيمة بتوجهات 00010000
num >>= 2; // النتيجة هنا ستكون 00000100 (4)
تُستخدم لنقل البتات في القيمة إلى اليسار بمقدار محدد وتعيين النتيجة للمتغير.
int num = 4; // قيمة بتوجهات 00000100
num <<= 2; // النتيجة هنا ستكون 00010000 (16)
تُستخدم لإجراء منطقي OR بين قيمة مع متغير ثم تعيين النتيجة للمتغير.
int flags = 0b0101;
flags |= 0b1000; // النتيجة هنا ستكون 0b1101 (13)
تُستخدم لإجراء منطقي XOR بين قيمة مع متغير ثم تعيين النتيجة للمتغير.
int data = 0b1100;
data ^= 0b1010; // النتيجة هنا ستكون 0b0110 (6)
تُستخدم لإجراء منطقي AND بين قيمة مع متغير ثم تعيين النتيجة للمتغير.
int mask = 0b1111;
data &= mask; // النتيجة هنا ستكون 0b0010 (2)
تُستخدم لتنفيذ كود معين إذا كان شرط معين صحيحًا.
int age = 20;
if (age >= 18)
{
Console.WriteLine("أنت بالغ.");
}
تُستخدم لتنفيذ كود معين إذا كان شرط معين صحيحًا، وإلا سيتم تنفيذ كود آخر.
int mark = 75;
if (mark >= 50)
{
Console.WriteLine("نجاح!");
}
else
{
Console.WriteLine("رسوب.");
}
تُستخدم لتحقق من مجموعة من الشروط المتعددة وتنفيذ كود مختلف حسب كل شرط.
int score = 85;
if (score >= 90)
{
Console.WriteLine("تقدير ممتاز!");
}
else if (score >= 80)
{
Console.WriteLine("تقدير جيد جدًا.");
}
else if (score >= 70)
{
Console.WriteLine("تقدير جيد.");
}
else
{
Console.WriteLine("تقدير مقبول.");
}
تُستخدم لاختبار قيمة معينة ضمن مجموعة من القيم وتنفيذ كود مختلف لكل حالة.
int day = 3;
switch (day)
{
case 1:
Console.WriteLine("الأحد");
break;
case 2:
Console.WriteLine("الإثنين");
break;
case 3:
Console.WriteLine("الثلاثاء");
break;
default:
Console.WriteLine("يوم غير معروف");
break;
}
تُستخدم لإجراء فحص سريع باستخدام تعبير ثلاثي وإرجاع قيمة بناءً على نتيجة الشرط.
int number = 10;
string result = (number % 2 == 0) ? "زوجي" : "فردي";
Console.WriteLine(result); // سيطبع "زوجي"
تُستخدم لتنفيذ كود معين بعدد محدد من المرات.
for (int i = 0; i < 5; i++)
{
Console.WriteLine($"التكرار رقم {i + 1}");
}
تُستخدم لتنفيذ كود معين ما دام الشرط مستمرًا.
int count = 0;
while (count < 3)
{
Console.WriteLine($"عدد: {count}");
count++;
}
تُستخدم لتنفيذ كود معين على الأقل مرة واحدة، ثم تستمر ما دام الشرط مستمرًا.
int tries = 0;
do
{
Console.WriteLine("محاولة!");
tries++;
} while (tries < 5);
تُستخدم لتنفيذ كود على كل عنصر في مجموعة معينة.
int[] numbers = { 1, 2, 3, 4, 5 };
foreach (int num in numbers)
{
Console.WriteLine($"العدد: {num}");
}
يمكنك استخدام حلقات لتنفيذ نفس الكود مرارًا وتكرارًا بطريقة فعالة. يمكن تخصيص الحلقات حسب الاحتياجات المحددة وتكرار العمليات بشكل أوتوماتيكي.
عملية تحويل قيمة من نوع بيانات إلى نوع آخر، سواء كان ضمنيًا أو واضحًا.
في هذا المثال، يتم تحويل قيمة من نوع دوبل إلى نوع إنتجر باستخدام تحويل واضح (Type Casting).
double doubleValue = 10.5;
int intValue = (int)doubleValue; // Explicit type casting from double to int
// Result: intValue = 10
عملية تحويل بين أنواع الأعداد مثل الصحيح والعشري والثنائي وغيرها.
في هذا المثال، يتم تحويل قيمة من نوع صحيح إلى نوع عشري باستخدام تحويل ضمني (Implicit Conversion).
int intValue = 42;
float floatValue = intValue; // Implicit numeric conversion from int to float
// Result: floatValue = 42.0
عملية تحويل بين نصوص وأنواع البيانات الأخرى.
في هذا المثال، يتم تحويل نص إلى قيمة صحيحة من نوع إنتجر باستخدام تحويل بواسطة التحليل (Parse Conversion).
string numberText = "123";
int number = int.Parse(numberText); // String to int conversion
// Result: number = 123
عملية تحويل بين أنواع التواريخ والزمن مثل DateTime و DateTimeOffset.
في هذا المثال، يتم تحويل نص تاريخ إلى نوع DateTime باستخدام تحويل بواسطة التحليل (Parse Conversion).
string dateString = "2023-08-22";
DateTime date = DateTime.Parse(dateString); // String to DateTime conversion
// Result: date = 2023-08-22
عملية تحويل بيانات بصيغة بايت من وإلى أنواع أخرى.
في هذا المثال، يتم تحويل مصفوفة بايت إلى نص باستخدام تحويل إلى ومن نص (String Formatting).
byte[] byteArray = { 0x41, 0x42, 0x43 };
string text = Encoding.ASCII.GetString(byteArray); // Bytes to string conversion
// Result: text = "ABC"
عملية تحويل قيم إلى نصوص مُهيَّأة بتنسيق محدد.
في هذا المثال، يتم تحويل قيمة من نوع إنتجر إلى نص مُهيَّأ باستخدام تحويل إلى ومن نص (String Formatting).
int intValue = 42;
string formattedText = string.Format("The value is {0}", intValue); // Value to formatted string
// Result: formattedText = "The value is 42"
عملية تحويل بين أنواع البيانات المخصصة التي تم تعريفها بواسطة المبرمج.
في هذا المثال، يتم تحويل قيمة من نوع دوبل إلى نوع مخصص Temperature باستخدام تحويل مخصص.
public class Temperature
{
public double Celsius { get; set; }
public static implicit operator Temperature(double celsius)
{
return new Temperature { Celsius = celsius };
}
}
double celsiusValue = 25.0;
Temperature temperature = celsiusValue; // Implicit custom conversion
// Result: temperature.Celsius = 25.0
عملية تحويل القيم داخل المصفوفات من نوع إلى نوع آخر.
في هذا المثال، يتم تحويل قيم داخل مصفوفة نصوص إلى مصفوفة أعداد صحيحة باستخدام تحويل بواسطة التحليل (Parse Conversion).
string[] stringArray = { "1", "2", "3" };
int[] intArray = Array.ConvertAll(stringArray, int.Parse); // String array elements to int array
// Result: intArray = [1, 2, 3]
عملية تحويل بين تمثيلات القيم الثنائية والعشرية.
في هذا المثال، يتم تحويل قيمة من نوع إنتجر إلى تمثيل ثنائي، وتحويل تمثيل ثنائي من نوع نص إلى قيمة من نوع إنتجر باستخدام تحويل إلى ومن نص (String Formatting).
int binaryValue = 10;
string binaryText = Convert.ToString(binaryValue, 2); // Decimal to binary conversion
string binaryText = "1010";
int decimalValue = Convert.ToInt32(binaryText, 2); // Binary to decimal conversion
// Result: binaryText = "1010", decimalValue = 10
هذه الأنواع هي تلك التي تُخزن مباشرة في مكان تخزينها، وتحمل القيمة بذاتها. _عندما يتم تعيين متغير من نوع قيمة إلى متغير آخر، يتم نسخ قيمته بالكامل_. هذا يعني أن كل متغير يحمل قيمة فريدة عن الآخر.
_الأنواع الرقمية_: مثل `int` و `double`. تستخدم لتخزين الأرقام الصحيحة والعشرية. _الأحرف_: مثل `char`. تُستخدم لتخزين الأحرف والرموز. _القيم البولية_: مثل `bool`. تُستخدم لتخزين القيم الصحيحة/الخطأ.
int x = 5;
int y = x; // تم نسخ قيمة x إلى y
هذه الأنواع هي تلك التي تُخزن في مكان ذاكرة وتُشير إلى هذا المكان. _عندما يتم تعيين متغير من نوع مرجع إلى متغير آخر، يتم تعيين الإشارة (العنوان) للمكان في الذاكرة دون نسخ البيانات بالكامل_. هذا يعني أن هناك علاقة تشارك بيانات واحدة بين المتغيرين.
_الصفوف_: مثل `class`. تُستخدم لتعريف هياكل تحتوي على خصائص ووظائف. _الهياكل_: مثل `struct`. تُستخدم لتعريف هياكل بيانات مخصصة. _المصفوفات_: مثل `arrays`. تُستخدم لتخزين مجموعة من القيم من نوع واحد. _الأنواع المخصصة_: تُنشئ بواسطة المطور وتستخدم لتحقيق أهداف معينة.
int[] array1 = { 1, 2, 3 };
int[] array2 = array1; // array2 يشير إلى نفس مكان الذاكرة الذي يشير إليه array1
تُستخدم لتنفيذ كود معين إذا كان شرط معين صحيحًا.
int age = 20;
if (age >= 18)
{
Console.WriteLine("You are an adult.");
}
النتيجة: You are an adult.
تُستخدم لتنفيذ كود معين إذا كان شرط معين صحيحًا، وإلا سيتم تنفيذ كود آخر.
int mark = 75;
if (mark >= 50)
{
Console.WriteLine("Success!");
}
else
{
Console.WriteLine("Fail.");
}
النتيجة: Success!
تُستخدم لتحقق من مجموعة من الشروط المتعددة وتنفيذ كود مختلف حسب كل شرط.
int score = 85;
if (score >= 90)
{
Console.WriteLine("Excellent!");
}
else if (score >= 80)
{
Console.WriteLine("Very Good.");
}
else if (score >= 70)
{
Console.WriteLine("Good.");
}
else
{
Console.WriteLine("Passable.");
}
النتيجة: Very Good.
تُستخدم لتنفيذ شروط متداخلة داخل شرط آخر.
int age = 17;
bool isStudent = true;
if (age >= 18)
{
if (isStudent)
{
Console.WriteLine("You are an adult and a student.");
}
else
{
Console.WriteLine("You are an adult, but not a student.");
}
}
else
{
Console.WriteLine("You are a minor.");
}
النتيجة: You are an adult and a student.
تُستخدم لاختبار قيمة معينة ضمن مجموعة من القيم وتنفيذ كود مختلف لكل حالة.
int day = 3;
switch (day)
{
case 1:
Console.WriteLine("Sunday");
break;
case 2:
Console.WriteLine("Monday");
break;
case 3:
Console.WriteLine("Tuesday");
break;
default:
Console.WriteLine("Unknown day");
break;
}
النتيجة: Tuesday
تُستخدم لإجراء فحص سريع باستخدام تعبير ثلاثي وإرجاع قيمة بناءً على نتيجة الشرط.
int number = 10;
string result = (number % 2 == 0) ? "Even" : "Odd";
Console.WriteLine(result); // سيطبع "Even"
النتيجة: Even
تُستخدم لإجراء فحص سريع آخر باستخدام تعبير ثلاثي.
int x = 7;
string message = (x > 5) ? "Greater than 5" : "Less than or equal to 5";
Console.WriteLine(message);
النتيجة: Greater than 5
تُستخدم لتنفيذ كود معين ما دام الشرط مستمرًا.
int count = 0;
while (count < 3)
{
Console.WriteLine($"Number: {count}");
count++;
}
النتيجة: Number: 0 Number: 1 Number: 2
تُستخدم لتنفيذ كود معين على الأقل مرة واحدة، ثم تستمر ما دام الشرط مستمرًا.
int tries = 0;
do
{
Console.WriteLine("Attempt!");
tries++;
} while (tries < 5);
النتيجة: Attempt! Attempt! Attempt! Attempt! Attempt!
هيكل تحكم يستخدم لتنفيذ مجموعة من البيانات مرارًا وتكرارًا بشكل تحكمي.
for (initialization of loop variable; testing condition; increment / decrement of loop variable)
{
// Statements to be executed
}
for (زيادة / تنقيص المتغير;شرط الاختبار;بداية تهيئة المتغير )
{
// البيانات التي سيتم تنفيذها
}
- بداية تهيئة المتغير: يتم تهيئة المتغير الذي سيتم استخدامه في الحلقة.
- شرط الاختبار: يتم فحصه في كل تكرار. إذا كان صحيحًا، يتم تنفيذ البيانات داخل الحلقة. إذا كان غير صحيح، يتم الخروج من الحلقة.
- زيادة / تنقيص المتغير: يتم تحديث قيمة المتغير في نهاية كل تكرار.
for (int i = 1; i <= 5; i++)
{
Console.WriteLine($"العدد: {i}");
}
النتيجة:
العدد: 1
العدد: 2
العدد: 3
العدد: 4
العدد: 5
تُستخدم لتنفيذ تسلسل من الأوامر بعدد معين من المرات.
for (int i = 1; i <= 5; i++)
{
Console.WriteLine($"التكرار رقم: {i}");
}
النتيجة:
التكرار رقم: 1
التكرار رقم: 2
التكرار رقم: 3
التكرار رقم: 4
التكرار رقم: 5
لنقم بحساب مجموع الأعداد من 1 إلى 10:
int sum = 0;
for (int i = 1; i <= 10; i++)
{
sum += i;
}
Console.WriteLine($"مجموع الأعداد من 1 إلى 10 هو: {sum}");
النتيجة: مجموع الأعداد من 1 إلى 10 هو: 55
for (int i = 2; i <= 20; i += 2)
{
Console.Write($"{i} ");
}
النتيجة: 2 4 6 8 10 12 14 16 18 20
تُستخدم لتنفيذ حلقات داخل حلقات، مما يسمح بتكرار العمليات بأكثر من طريقة.
for (int i = 1; i <= 3; i++)
{
Console.WriteLine($"الحلقة الخارجية: {i}");
for (int j = 1; j <= 2; j++)
{
Console.WriteLine($"الحلقة الداخلية: {j}");
}
Console.WriteLine("--------");
}
النتيجة:
الحلقة الخارجية: 1
الحلقة الداخلية: 1
الحلقة الداخلية: 2
--------
الحلقة الخارجية: 2
الحلقة الداخلية: 1
الحلقة الداخلية: 2
--------
الحلقة الخارجية: 3
الحلقة الداخلية: 1
الحلقة الداخلية: 2
--------
فلنقم بطباعة جدول الضرب حتى 5:
for (int i = 1; i <= 5; i++)
{
for (int j = 1; j <= 5; j++)
{
int result = i * j;
Console.Write($"{result}\t");
}
Console.WriteLine();
}
النتيجة:
1 2 3 4 5
2 4 6 8 10
3 6 9 12 15
4 8 12 16 20
5 10 15 20 25
لنقم بطباعة نجمات بنمط مثلث:
for (int i = 1; i <= 5; i++)
{
for (int j = 1; j <= i; j++)
{
Console.Write("* ");
}
Console.WriteLine();
}
النتيجة:
*
* *
* * *
* * * *
* * * * *
كلمة المفتاحية "break" تستخدم للخروج من الحلقة عند تحقق شرط معين.
for (زيادة / تنقيص المتغير;شرط الاختبار;بداية تهيئة المتغير )
{
// البيانات التي سيتم تنفيذها
if (شرط معين)
{
break; // الخروج من الحلقة
}
}
يمكن استخدام كلمة المفتاحية "break" للخروج من الحلقة بشكل فوري عندما يتحقق شرط معين.
for (int i = 1; i <= 5; i++)
{
if (i == 3)
{
break; // الخروج من الحلقة عند i يساوي 3
}
Console.WriteLine($"العدد: {i}");
}
النتيجة: العدد: 1 العدد: 2
كلمة المفتاحية "continue" تستخدم لتجاوز تنفيذ البيانات والانتقال إلى التكرار التالي داخل الحلقة.
for (زيادة / تنقيص المتغير;شرط الاختبار;بداية تهيئة المتغير )
{
if (شرط معين)
{
continue; // تخطي باقي الكود والانتقال إلى التكرار التالي
}
// البيانات التي سيتم تنفيذها إذا لم يتحقق الشرط
}
يمكن استخدام كلمة المفتاحية "continue" لتجاوز تنفيذ البيانات والانتقال إلى التكرار التالي داخل الحلقة.
for (int i = 1; i <= 5; i++)
{
if (i == 3)
{
continue; // تخطي التكرار عند i يساوي 3
}
Console.WriteLine($"العدد: {i}");
}
النتيجة:
العدد: 1
العدد: 2
العدد: 4
العدد: 5
كلمة المفتاحية "goto" تُستخدم للقفز إلى تعليمة محددة في البرنامج. ومع ذلك، يُنصح عادةً بتجنب استخدام "goto" لأنه يمكن أن يجعل الكود أقل قابلية للفهم والصيانة. يُفضل استخدام هياكل تحكم أخرى مثل الشروط والحلقات لتنظيم تدفق البرنامج.
// التعليمة التي يتم الانتقال إليها
labelName:
// البيانات التي ستُنفذ عند استخدام الكلمة المفتاحية goto
// ...
goto labelName; // الانتقال إلى التعليمة labelName
// ...
// البيانات التي ستُنفذ بعد العودة من التعليمة labelName
// ...
استخدام الكلمة المفتاحية "goto" يمكن أن يؤدي إلى تعقيد تدفق البرنامج وصعوبة في فهمه وصيانته، ولذلك يُفضل استخدام هياكل التحكم الأخرى.
int x = 1;
startLoop:
Console.WriteLine($"قيمة x: {x}");
x++;
if (x <= 5)
{
goto startLoop; // الانتقال إلى التعليمة startLoop
}
Console.WriteLine("انتهى البرنامج");
النتيجة: قيمة x: 1 قيمة x: 2 قيمة x: 3 قيمة x: 4 قيمة x: 5 انتهى البرنامج
-
-
-
-
-
-
-