Menu
Coddy logo textTech
flag Ar iconالعربيةdown icon

جمل القفز (goto)

جزء من قسم Logic & Flow في رحلة C# على Coddy — الدرس 20 من 66.

توفر جملة goto في لغة C# طريقة لنقل التحكم مباشرة إلى جملة ذات تسمية (labeled statement) داخل نفس الدالة (method).

أنشئ تسمية (label) في الكود الخاص بك:

start:

استخدم جملة goto للانتقال إلى تلك العلامة:

goto start;

إليك مثال بسيط يستخدم goto لإنشاء حلقة تكرار:

int i = 0;

start:
if (i < 5)
{
    Console.WriteLine(i);
    i++;
    goto start;
}

بعد تنفيذ الكود أعلاه، ستكون المخرجات كما يلي:

0
1
2
3
4

بينما goto موجود في C#، يُوصى عمومًا باستخدام جمل التحكم في التدفق المهيكلة (if، for، while، إلخ) بدلاً من ذلك، لأنها تجعل الكود أكثر قابلية للقراءة والصيانة.

challenge icon

التحدي

سهل

أنشئ طريقة تسمى ProcessCommands تأخذ وسيطاً واحداً:

  • سلسلة نصية (command) تحتوي على أمر لمعالجته.

يجب أن تنفذ الطريقة معالج أوامر بسيطاً باستخدام عبارات goto:

  • إذا كان الأمر هو "start"، فاطبع "Starting process" ثم انتقل إلى التسمية "end"
  • إذا كان الأمر هو "stop"، فاطبع "Stopping process" ثم انتقل إلى التسمية "end"
  • إذا كان الأمر هو "pause"، فاطبع "Pausing process" ثم انتقل إلى التسمية "end"
  • إذا كان الأمر أي شيء آخر، فاطبع "Unknown command" ثم انتقل إلى التسمية "end"
  • عند التسمية "end"، اطبع "Command processed"

ورقة مرجعية

تقوم جملة goto بنقل التحكم مباشرة إلى جملة ذات تسمية (labeled statement) داخل نفس الطريقة (method).

إنشاء تسمية (label):

start:

الانتقال إلى تسمية باستخدام goto:

goto start;

مثال على استخدام goto لإنشاء حلقة (loop):

int i = 0;

start:
if (i < 5)
{
    Console.WriteLine(i);
    i++;
    goto start;
}

بينما goto موجودة في لغة C#، إلا أنه يُوصى عموماً باستخدام جمل التحكم المنظمة (if، for، while، إلخ) لتحسين قابلية قراءة الكود وصيانته.

جرّب بنفسك

using System;

public class Program
{
    public static void ProcessCommands(string command)
    {
        // اكتب كودك هنا
    }
    
    public static void Main(string[] args)
    {
        string command = Console.ReadLine();
        ProcessCommands(command);
    }
}
quiz iconاختبر نفسك

يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.

جميع دروس Logic & Flow