Aracılığıyla paylaş


Eğitim: C# if ifadeler ve döngüler - koşullu mantık yapıları

Bu öğretici, değişkenleri inceleyen ve bu değişkenlere göre yürütme yolunu değiştiren C# kodu yazmayı öğretir. C# kodu yazar ve derlemenin ve çalıştırmanın sonuçlarını görürsünüz. Öğretici, C# dilinde dallanma ve döngü yapılarını inceleyen bir dizi ders içerir. Bu dersler size C# dilinin temellerini öğretir.

Bu eğitimde, siz:

  • C# geliştirme ortamıyla GitHub Codespace başlatın.
  • if ve else deyimlerini keşfedin.
  • İşlemleri yinelemek için döngüleri kullanın.
  • İç içe döngülerle çalışmayı öğrenme.
  • Dalları ve döngüleri birleştirin.

Önkoşullar

Aşağıdaki seçeneklerden birine sahip olmanız gerekir:

if deyimlerini kullanma

Öğretici ortamıyla bir GitHub Codespace başlatmak için , öğretici kod alanı deposuna bir tarayıcı penceresi açın. Yeşil Kod düğmesini ve Codespaces sekmesini seçin. Ardından bu ortamı kullanarak yeni bir Codespace oluşturmak için işareti seçin + . Bu serideki diğer öğreticileri tamamladıysanız, yeni bir tane oluşturmak yerine bu kod alanının açılmasını sağlayabilirsiniz.

  1. Codespace'ınız yüklendiğinde, öğreticiler klasöründe branches-loops.cs adlı yeni bir dosya oluşturun.

  2. Yeni dosyanızı açın.

  3. Aşağıdaki kodu branches-loops.cs yazın veya kopyalayın:

    int a = 5;
    int b = 6;
    if (a + b > 10)
        Console.WriteLine("The answer is greater than 10.");
    
  4. Tümleşik terminale aşağıdaki komutu yazarak bu kodu deneyin:

    cd tutorials
    dotnet branches-loops.cs
    

    Konsolunuza "Yanıt 10'dan büyük" iletisinin yazdırıldığını görmeniz gerekir.

  5. toplam 10'dan küçük olacak şekilde b bildirimini değiştirin:

    int b = 3;
    
  6. Terminal penceresine yeniden yazın dotnet branches-loops.cs .

    Yanıt 10'dan küçük olduğundan hiçbir şey yazdırılmaz. Test ettiğiniz koşulu yanlıştır. Bir if deyimi için olası dallardan yalnızca birini yazdığınızdan yürütülecek bir kodunuz yok: gerçek dal.

Bahşiş

C# dilini (veya herhangi bir programlama dilini) keşfederken kod yazarken hatalar yapabilirsiniz. Derleyici hataları bulur ve bildirir. Hata çıkışına ve hatayı oluşturan koda yakından bakın. Copilot'dan farklılıkları bulmasını veya hataları tespit etmesini de isteyebilirsiniz. Derleyici hatası genellikle sorunu bulmanıza yardımcı olabilir.

Bu ilk örnek ve Boole türlerinin if gücünü gösterir. Boole değeri, iki değerden birine sahip olabilecek bir değişkendir: true veya false. C# Boole bool değişkenleri için özel bir tür tanımlar. if deyimi bir booldeğerini denetler. Değer true'e eşit olduğunda, if sonrasındaki deyim yürütülür. Aksi takdirde atlanır. Koşulları kontrol etme ve bu koşullara göre deyimleri yürütme süreci oldukça etkilidir. Şimdi daha fazlasını keşfedelim.

If ve else'nin birlikte çalışmasını sağlama

Hem true hem de false dallarında farklı kod yürütmek için, koşul false olduğunda yürütülen bir else dalı oluşturursunuz. Bir else şube kullanın.

  1. Aşağıdaki kod parçacığına son iki satırı ekleyin (ilk dördüne zaten sahip olmanız gerekir):

    int a = 5;
    int b = 3;
    if (a + b > 10)
        Console.WriteLine("The answer is greater than 10");
    else
        Console.WriteLine("The answer is not greater than 10");
    

    else anahtar sözcüğünü izleyen deyim yalnızca test edilen koşul falseolduğunda yürütülür. if ve else'in boole koşullarıyla birleşimi, hem true hem de false koşulunu işlemek için ihtiyacınız olan tüm gücü sağlar.

    Önemli

    if ve else deyimlerinin altındaki girinti, insan okuyucular içindir. C# dili girintiyi veya boşluğu önemli olarak ele almaz. if veya else anahtar sözcüğünden sonra gelen ifade, koşula bağlı olarak yürütülür. Bu öğreticideki tüm örnekler, kontrol akışına göre satırları girintili yapma konusunda yaygın bir uygulamayı izler.

    Girinti önemli olmadığından, birden fazla deyimin koşullu olarak yürütülen bloğun parçası olmasını istediğiniz zamanları belirtmek için { ve } kullanmanız gerekir. C# programcıları genellikle bu ayraçları tüm if ve else yan tümcelerinde kullanır.

  2. Aşağıdaki örnek, ve {öğesinin eklenmesiyle } önceki örnekte oluşturduğunuz örnekle aynıdır. Kodunuzu aşağıdaki kodla eşleşecek şekilde değiştirin:

    int a = 5;
    int b = 3;
    if (a + b > 10)
    {
        Console.WriteLine("The answer is greater than 10");
    }
    else
    {
        Console.WriteLine("The answer is not greater than 10");
    }
    

    Bahşiş

    Bu öğreticinin geri kalanında kod örneklerinin tümü, kabul edilen uygulamalara uyarak ayraçları içerir.

  3. Daha karmaşık koşulları test edebilirsiniz. Şu ana kadar yazdığınız kodun arkasına aşağıdaki kodu ekleyin:

    int a = 5;
    int b = 3;
    int c = 4;
    if ((a + b + c > 10) && (a == b))
    {
        Console.WriteLine("The answer is greater than 10");
        Console.WriteLine("And the first number is equal to the second");
    }
    else
    {
        Console.WriteLine("The answer is not greater than 10");
        Console.WriteLine("Or the first number is not equal to the second");
    }
    

    == simgesi eşitliği olup olmadığını test eder. == kullanmak, eşitlik testini a = 5'de gördüğünüz atamadan ayırır.

    && "ve" öğesini temsil eder. Bu, doğru dalındaki ifadeyi çalıştırmak için her iki koşulun da doğru olması gerektiği anlamına gelir. Bu örnekler, { ve }içine almanız koşuluyla her koşullu dalda birden çok deyiminiz olabileceğini de gösterir.

  4. "veya" öğesini temsil etmek için de kullanabilirsiniz || . Şu ana kadar yazdıkların ardından aşağıdaki kodu ekleyin:

    if ((a + b + c > 10) || (a == b))
    
  5. a, bve c değerlerini değiştirin ve keşfetmek için && ile || arasında geçiş yapın. && ve || işleçlerinin nasıl çalıştığı hakkında daha fazla bilgi edinebilirsiniz.

  6. İlk adımı tamamladınız. Sonraki bölüme başlamadan önce geçerli kodu ayrı bir yönteme taşıyalım. Bu, yeni bir örnekle çalışmaya başlamayı kolaylaştırır. Mevcut kodu ExploreIf() adlı bir metoda yerleştirin. Bunu programınızın en üstünden arayın. Bu değişiklikleri tamamladığınızda kodunuz aşağıdaki kod gibi görünmelidir:

    ExploreIf();
    
    void ExploreIf()
    {
        int a = 5;
        int b = 3;
        if (a + b > 10)
        {
            Console.WriteLine("The answer is greater than 10");
        }
        else
        {
            Console.WriteLine("The answer is not greater than 10");
        }
    
        int c = 4;
        if ((a + b + c > 10) && (a > b))
        {
            Console.WriteLine("The answer is greater than 10");
            Console.WriteLine("And the first number is greater than the second");
        }
        else
        {
            Console.WriteLine("The answer is not greater than 10");
            Console.WriteLine("Or the first number is not greater than the second");
        }
    
        if ((a + b + c > 10) || (a > b))
        {
            Console.WriteLine("The answer is greater than 10");
            Console.WriteLine("Or the first number is greater than the second");
        }
        else
        {
            Console.WriteLine("The answer is not greater than 10");
            Console.WriteLine("And the first number is not greater than the second");
        }
    }
    
  7. çağrısına açıklama ekleyin ExploreIf(). Bu bölümde çalışırken çıktının daha düzenli olmasını sağlar.

    //ExploreIf();
    

C // # dilinde bir açıklama başlatır. Açıklamalar, kaynak kodunuzda tutmak istediğiniz ancak kod olarak yürütmek istemediğiniz herhangi bir metindir. Derleyici açıklamalardan yürütülebilir kod oluşturmaz.

İşlemleri yinelemek için döngüleri kullanma

Daha büyük programlar oluşturmak için bir diğer önemli kavram da döngülerdir. Birden çok kez yürütmek istediğiniz deyimleri yinelemek için döngüleri kullanın.

  1. ExploreIf çağrısından sonra bu kodu ekleyin:

    int counter = 0;
    while (counter < 10)
    {
        Console.WriteLine($"Hello World! The counter is {counter}");
        counter++;
    }
    

    while ifadesi bir koşulu denetler ve sonrasında whileifadesini yürütür. Koşulu denetlemeyi ve koşul false olana kadar bu deyimleri yürütmeyi yineler.

    Bu örnekte başka bir yeni işleç daha vardır. ++ değişkeninden sonraki counter, artış işlecidir . değerine counter 1 ekler ve bu değeri değişkende counter depolar.

    Önemli

    Kodu yürütürken döngü koşulunun while false olarak değiştiğinden emin olun. Aksi takdirde, programınızın hiç bitmeyecek şekilde sonsuz döngü oluşturursunuz. Bu davranış bu örnekte gösterilmiyor, çünkü CTRL-C veya diğer araçları kullanarak programınızı bırakmaya zorlamanız gerekiyor.

    while döngüsü, whileizleyen kodu yürütmeden önce koşulu sınar.

  2. do ... while döngüsü önce kodu yürütür ve ardından koşulu denetler. Do while döngüsü aşağıdaki kodda gösterilir:

    int counter = 0;
    do
    {
        Console.WriteLine($"Hello World! The counter is {counter}");
        counter++;
    } while (counter < 10);
    

    Bu do döngü ve önceki while döngü aynı çıkışı üretir.

Şimdi son bir döngü deyimine geçelim.

For döngüsüyle çalışmak

C# kodunda gördüğünüz bir diğer yaygın döngü deyimi de for döngüsüdür.

  1. Şu kodu deneyin:

    for (int counter = 0; counter < 10; counter++)
    {
        Console.WriteLine($"Hello World! The counter is {counter}");
    }
    

    Önceki for döngüsü, daha önce kullandığınız while döngüsü ve do döngüsüyle aynı çalışmayı yapar. for deyiminin nasıl çalıştığını denetleen üç bölümü vardır:

    • İlk bölüm başlatıcı için: int counter = 0;counter'nin döngü değişkeni olduğunu bildirir ve ilk değerini 0olarak ayarlar.
    • Orta kısım for koşuludur: counter < 10 değeri 10'dan küçük olduğu sürece bu for döngünün counter yürütülmeye devam ettiğini bildirir.
    • Son parça, yineleyici için'dır: counter++, for deyiminin ardından gelen bloğun yürütülmesinden sonra döngü değişkeninin nasıl değiştirileceğini belirtir. Blok her çalıştırıldığında counter'nin 1 arttığı burada belirtilmiştir.
  2. Bu koşulları kendiniz deneyin. Aşağıdaki değişikliklerin her birini deneyin:

    • Başlatıcıyı farklı bir değerden başlayacak şekilde değiştirin.
    • Koşulu farklı bir değerde duracak şekilde değiştirin.

İşiniz bittiğinde, kendiniz kod yazmak ve öğrendiklerini kullanmak için bir sonraki bölüme geçin.

Bu öğreticide ele alınmamış bir döngü komutu daha vardır: foreach deyimi. foreach deyimi, bir öğe dizisindeki her öğe için deyimini yineler. Bunu en sık koleksiyonlarla kullanırsınız. Sonraki derste ele alınacaktır.

İç içe döngüler oluşturuldu

Dış döngüdeki her öğeyi whileiç döngüdeki her öğeyle birleştirerek matris oluşturmak için bir , doveya for döngüsünü başka bir döngünün içine yerleştirebilirsiniz. Şimdi satırları ve sütunları temsil eden bir alfasayısal çift kümesi oluşturalım.

  1. Aşağıdaki for döngüsünü ekleyerek satırları oluşturun:

    for (int row = 1; row < 11; row++)
    {
        Console.WriteLine($"The row is {row}");
    }
    
  2. Sütunları oluşturmak için başka bir döngü ekleyin:

    for (char column = 'a'; column < 'k'; column++)
    {
        Console.WriteLine($"The column is {column}");
    }
    
  3. Son olarak, sütun döngüsünü satırların içine yerleştirerek çiftleri oluşturun.

    for (int row = 1; row < 11; row++)
    {
        for (char column = 'a'; column < 'k'; column++)
        {
            Console.WriteLine($"The cell is ({row}, {column})");
        }
    }
    

    Dış döngü, iç döngü her tamamlandığında bir kez artar. Satır ve sütunu iç içe yerleştirmeyi ters çevirip değişiklikleri kendiniz görün. İşiniz bittiğinde, bu bölümdeki kodu ExploreLoops() adlı bir yönteme yerleştirin.

Dalları ve döngüleri birleştirme

Artık C# dilinde if ifadesini ve döngü yapılarını kullandığınıza göre, 1'den 20'ye kadar olan ve 3 ile tam bölünebilen tüm tamsayıların toplamını bulmak için C# kodu yazmayı deneyin. İşte birkaç ipucu:

  • % işleci size bölme işleminin geri kalanını verir.
  • if deyimi, bir sayının toplamın parçası olup olmadığını görme koşulu verir.
  • for döngüsü, 1 ile 20 arasındaki tüm sayılar için bir dizi adımı yinelemenize yardımcı olabilir.

Kendiniz deneyin. O zaman nasıl yaptığını kontrol et. İpucu olarak, bir yanıt olarak 63 almanız gerekiyor.

Böyle bir şey mi buldun?

int sum = 0;
for (int number = 1; number < 21; number++)
{
    if (number % 3 == 0)
    {
        sum = sum + number;
    }
}
Console.WriteLine($"The sum is {sum}");

"Dallar ve döngüler" öğreticisini tamamladınız. Bu kavramlar hakkında daha fazla bilgiyi şu makalelerde bulabilirsiniz:

Kaynakları temizleme

GitHub, 30 günlük etkinlik dışı kalma süresinden sonra Codespace'inizi otomatik olarak siler. Bu serideki diğer öğreticileri keşfetmeyi planlıyorsanız, Codespace'inizi (kod çalışma alanı) hazır durumda bırakabilirsiniz. .NET SDK'sını indirmek için .NET sitesini ziyaret etmeye hazırsanız Codespace'ınızı silebilirsiniz. Codespace'ınızı silmek için bir tarayıcı penceresi açın ve Codespaces'inize gidin. Pencerede kod boşluklarınızın listesini görmeniz gerekir. Learn eğitim kod alanının girişindeki üç noktayı (...) seçin ve sil seçin.

Sonraki adım