Menu
Coddy logo textTech

Jump Statements (goto)

Coddy'nin C# Journey'sinin Mantık & Akış bölümünün bir parçası — ders 20 / 66.

C#'ta goto deyimi, aynı metot içindeki etiketli bir deyime kontrolü doğrudan aktarmanın bir yolunu sağlar.

Kodunuzda bir etiket oluşturun:

start:

O etikete atlamak için goto deyimini kullanın:

goto start;

İşte goto kullanarak bir döngü oluşturan basit bir örnek:

int i = 0;

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

Yukarıdaki kodu çalıştırdıktan sonra çıktı şu olacaktır:

0
1
2
3
4

C#'da goto mevcut olsa da, genellikle kodun daha okunabilir ve bakımı kolay olması için yapılandırılmış kontrol akışı ifadeleri (if, for, while vb.) kullanılması tavsiye edilir.

challenge icon

Görev

Kolay

ProcessCommands adında bir metot oluşturun, bu metot bir argüman alır:

  • İşlenecek bir komut içeren bir string (command).

Metot, goto ifadeleri kullanarak basit bir komut işlemcisi uygulamalıdır:

  • Eğer komut "start" ise, "Starting process" yazdırın ve ardından "end" etiketine gidin
  • Eğer komut "stop" ise, "Stopping process" yazdırın ve ardından "end" etiketine gidin
  • Eğer komut "pause" ise, "Pausing process" yazdırın ve ardından "end" etiketine gidin
  • Eğer komut başka bir şeyse, "Unknown command" yazdırın ve ardından "end" etiketine gidin
  • "end" etiketinde, “Command processed” yazdırın

Kopya kağıdı

goto ifadesi, aynı metod içindeki etiketli bir ifadeye doğrudan kontrolü aktarır.

Etiket oluşturun:

start:

goto kullanarak etikete atlayın:

goto start;

Döngü oluşturmak için goto kullanan örnek:

int i = 0;

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

C#'ta goto mevcut olsa da, daha iyi kod okunabilirliği ve bakımı için yapılandırılmış kontrol akışı ifadeleri (if, for, while vb.) genellikle önerilir.

Kendin dene

using System;

public class Program
{
    public static void ProcessCommands(string command)
    {
        // Kodu buraya yazın
    }
    
    public static void Main(string[] args)
    {
        string command = Console.ReadLine();
        ProcessCommands(command);
    }
}
quiz iconKendini test et

Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.

Mantık & Akış bölümündeki tüm dersler