if و else
bool ready = true; يخزّن الكلمة true. ثم if (ready) ينظر إلى تلك الكلمة ويشغّل مجموعة واحدة من الأسطر. عندما يكون ready يساوي true، Console.WriteLine("pass") يكتب pass. عندما يكون ready يساوي false، مجموعة else تعمل وتكتب wait. الشاشة سطر واحد. أبقِ اسم الصنف العام Pine.
bool واحد يقرّر أي كتلة تعمل
افتح ملف Pine. اسم الصنف يبقى Pine. هذه الصفحة لا تعيد تسمية النوع. احذف bool both إن بقي ذلك السطر، بما في ذلك true && true، وtrue || false، و!true، وكل علامة جمع بين كلمتي true أو false. احذف bool match إن بقي. احذف int total إن بقي. احذف أي سطر ReadLine. الملف الذي تحتفظ به بلا انتظار للكتابة، بلا both، بلا match، وبلا كتابة عارية لكلمة مجمّعة وحدها. الشاشة تُكتب فقط بسطر الكتابة داخل الأقواس المعقوفة المختارة.
داخل Main، خزّن bool قبل أن تختار مسارًا: bool ready = true;. bool كلمة النوع. ready هو الاسم، ويبدأ بحرف r صغير. بلا اقتباس حول true. الفاصلة المنقوطة تنهي سطر التخزين. ذلك السطر لا يكتب الشاشة. بعد ذلك يأتي الاختيار:
if (ready) {
Console.WriteLine("pass");
} else {
Console.WriteLine("wait");
}
كلمة if بحروف صغيرة: i ثم f. ليست اسمًا تخترعه أنت. فراغ بعد if مسموح؛ if(ready) بلا فراغ يُبنى أيضًا. داخل الأقواس يجلس الاسم ready — بلا اقتباس، بلا ==، بلا &&. عندما يحمل ready قيمة true، يدخل C# زوج الأقواس المعقوفة الأول ويشغّل Console.WriteLine("pass");. الاقتباس حول pass يحدّد حروفًا للشاشة. تلك الحروف — p، a، s، s — ما يجب أن تراه، سطر واحد. كتلة else تُتخطّى بالكامل في هذا التشغيل. احفظ الملف.
الملف الذي تحتفظ به
أبقِ هذا الشكل التعليمي. كلمة نوع واحدة، bool. اسم واحد، ready، مخزّن كـ true. if واحد بأقواس حول ready. سطر كتابة واحد يكتب pass داخل الأقواس المعقوفة الأولى. else واحد بسطر كتابة يكتب wait. لا سطر both، ولا سطر match، ولا كتابة للكلمة العارية true خارج الأقواس المعقوفة.
using System;
public class Pine
{
public static void Main()
{
bool ready = true;
if (ready)
{
Console.WriteLine("pass");
}
else
{
Console.WriteLine("wait");
}
}
}
اقرأ من الأعلى. using System; يجهّز الأسماء القصيرة. public class Pine يسمّي النوع. public static void Main() حيث يبدأ التشغيل. bool ready = true; يخزّن true. لا يكتب شيئًا. if (ready) يسأل هل تلك الكلمة المخزّنة true. هي كذلك، فيعمل Console.WriteLine("pass");. أقواس else المعقوفة تُتخطّى. سطر واحد على الشاشة: pass. بلا اقتباس على الشاشة. بلا سطر ثانٍ. لا سطر bool both في الملف الذي تحتفظ به.
شغّله بـ dotnet run. البرنامج يكتب pass. لا ينتظر أن تكتب شيئًا. الكلمة المخزّنة والاختيار كانا في الملف مسبقًا. إن انتظر dotnet run، فـ ReadLine ما زال في الملف. احذف ذلك السطر وأبقِ bool ready = true; وif / else أعلاه. البرنامج ينتهي بعد سطر الكتابة المختار. الشاشة تُظهر pass. سطر واحد. إن أظهرت الشاشة true، فما زلت تكتب الـ bool نفسه، أو جمع صفحة المنطق ما زال داخل Main. استبدله بـ Console.WriteLine("pass") داخل أقواس if المعقوفة عندما يكون ready يساوي true. إن أظهرت الشاشة wait، فـ ready يساوي false؛ ذلك الملف الثاني في هذه الصفحة، لا الملف الذي تحتفظ به. إن أظهرت الشاشة حروف if (ready)، فسطر الكتابة فيه اقتباس حول تلك الأحرف. لا تعيد تثبيت .NET SDK من أجل شاشة تُظهر السطر الخطأ.
لماذا pass لا wait؟ لأن الاختبار داخل الأقواس كان true. C# لا يكتب الكلمة true في هذا التشغيل. يكتب أي سطر كتابة يعمل داخل الأقواس المعقوفة المختارة. فكّر في ثلاث مهام: الأقواس تحفظ الاختبار، والأقواس المعقوفة تجمع الأسطر التي تنتمي معًا، وConsole.WriteLine وحده يكتب إلى الشاشة. شاشة تُظهر pass لا تثبت وحدها وجود if. ابحث في الملف عن if (ready) والأقواس المعقوفة. لا تحكم على الملف من الشاشة وحدها.
عندما يكون ready يساوي false
غيّر القيمة المخزّنة فقط: bool ready = false;. اترك بنية if / else كما هي. الآن يفشل الاختبار، فيتخطّى C# الأقواس المعقوفة الأولى ويشغّل أقواس else بدلًا منها. يجب أن تُظهر الشاشة wait، سطر واحد.
using System;
public class Pine
{
public static void Main()
{
bool ready = false;
if (ready)
{
Console.WriteLine("pass");
}
else
{
Console.WriteLine("wait");
}
}
}
هذا الملف الثاني. ليس الملف الذي تحتفظ به. شغّل dotnet run. الشاشة تُظهر wait. سطر واحد. لا تُظهر pass. لا تُظهر الكلمة false ككلمة الشاشة إلا إن كتبتها عمدًا. إن أظهرت الشاشة pass، فما زلت على الملف الذي تحتفظ به، حيث ready يساوي true. بعد رؤية wait، أعد الملف المحفوظ: bool ready = true; ونفس if / else الذي يكتب pass على مسار true. النسختان C# صالحتان. تعلّمان نفس شكل if / else باختبارين متضادين.
اقرأ تشغيل false مرة أخرى بالترتيب. ready يحمل false. يُسأل if (ready). الجواب false، فكل سطر بين { الأولى و} المطابقة يُتخطّى — بما في ذلك Console.WriteLine("pass");. يستمر التحكم عند else. الأسطر بين أقواس else المعقوفة تعمل، فيُنفَّذ Console.WriteLine("wait");. سطر واحد على الشاشة. بلا سطر ثانٍ. كلمة false نفسها لا تظهر إلا إن كتبتها عمدًا.
قواعد تُبقي الاختيار واضحًا
الأقواس حول الاختبار مطلوبة. كتابة if ready { … } بلا أقواس تجعل الـ build يكتب خطأ. اختبار هذه الصفحة هو bool: اسم مثل ready، أو الكلمتان العاريتان true أو false بلا اقتباس. if ("true") يضع حروفًا حيث ينتمي اختبار bool؛ يكتب الـ build خطأ. احذف الاقتباس، أو أبقِ استخدام اسم bool. عدد صحيح وحده مثل if (1) ليس شكل تخزين الجاهزية في هذا الدرس؛ ابقَ مع true أو false أو اسم bool.
الأقواس المعقوفة مهمة لقراءة الدرس. هذه الصفحة تلفّ كل مسار دائمًا داخل { }. C# يسمح بـ if بسطر واحد بلا أقواس معقوفة، لكن لحظة تضيف سطرًا ثانيًا تحت ذلك الـ if، يبقى السطر الأول وحده مربوطًا بالاختبار ما لم تكن الأقواس المعقوفة موجودة. المبتدئون يفقدون ذلك التفصيل بسهولة. أبقِ الأقواس المعقوفة في العرضين حتى يتضح كل مسار: قوس فتح بعد الاختبار، قوس إغلاق قبل else، ثم زوج آخر لـ else.
else ينتمي إلى if. else وحده يجعل الـ build يكتب خطأ. في هذه الصفحة if واحد له else واحد. يمكنك كتابة if بلا else عندما يهمّك مسار true فقط؛ الملف الذي تحتفظ به ما زال يُظهر الجانبين حتى ترى التفرع. الاختيار بين قيم ثابتة كثيرة هو switch في صفحة لاحقة — لا تخترع فرعًا ثالثًا بـ else آخر هنا.
يمكنك أيضًا كتابة الاختبار بلا اسم منفصل: if (true) { … } else { … }. ذلك يُبنى ويعمل. العروض تستخدم ready حتى ترى bool مخزّنًا يقود الاختيار، كما تبدو البرامج بعد أن تعرف كيف تخزّن true وfalse. مقارنات مثل if (score > 10) تأتي بعد أن ترتاح مع تفرع true / false هذا؛ هذه الصفحة تُبقي الاختبار قيمة bool تفهمها أصلًا.
📊 ready and the screen
| ready | Screen |
|---|---|
| true | pass |
| false | wait |
استخدم الجدول للتحقق بعد تشغيل، لا بدلًا منه. true مع الملف الذي تحتفظ به يكتب pass. false مع الملف الثاني يكتب wait. إن عمل سطرَا الكتابة معًا بطريقة ما، فالأقواس المعقوفة أو اقتران if / else خاطئ — أصلِح البنية بدل إعادة تثبيت .NET SDK.
خلط شائع هو كتابة النحو نفسه: Console.WriteLine("if (ready)");. ذلك يكتب الأحرف if (ready). لا يختار مسارًا. خلط آخر هو ترك عروض && أو == في نفس Main والتعجّب لماذا تُظهر الشاشة true بدل pass. Main هذه الجلسة يجب أن يحمل الـ bool وif / else فقط.
يمكنك الآن تخزين bool، ووضعه داخل if (…)، وإعطاء كل نتيجة كتلة أقواس معقوفة خاصة بها. عندما يكون الاختبار true يعمل سطر كتابة واحد؛ عندما يكون false يعمل سطر كتابة else. الصفحة التالية هي switch، حيث تحصل عدة قيم ثابتة كل واحدة على case خاص بها بدل تفرع true / false واحد.
الشاشة هي المسار المختار
الملف الذي تحتفظ به يكتب pass. الاسم ready داخل الأقواس، وready ليس على الشاشة. الكلمة true في سطر التخزين، وtrue ليست على الشاشة. مسار else في الملف، ولا يعمل في التشغيل المحفوظ. اقتباس حول if (ready) يكتب حروفًا، لا مسارًا مختارًا.
🧠 اختبر معرفتك
اختبر معرفتك
تحدى نفسك مع هذا الاختبار التفاعلي واكتشف مدى فهمك للموضوع
📝 التعليمات
- اقرأ كل سؤال بعناية
- اختر أفضل إجابة لكل سؤال
- يمكنك إعادة الاختبار عدة مرات كما تريد
- سيتم عرض تقدمك في الأعلى