Aracılığıyla paylaş


C# if deyimleri ve döngüleri - koşullu mantık öğreticisi

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.

Bahşiş

Kod parçacığı bloğu "Çalıştır" düğmesini içerdiğinde, bu düğme etkileşimli pencereyi açar veya etkileşimli penceredeki mevcut kodun yerini alır. Kod parçacığında "Çalıştır" düğmesi olmadığında kodu kopyalayıp geçerli etkileşimli pencereye ekleyebilirsiniz.

Etkileşimli pencerede aşağıdaki kodu çalıştırın. seçinÇalıştır

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

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

int b = 3;

Çalıştır düğmesini yeniden seçin. 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 yaparsınız. derleyicisi bu hataları bulur ve size bildirir. Çıktı hata iletileri içerdiğinde, düzeltilmesi gerekenleri görmek için örnek koda ve etkileşimli penceredeki koda yakından bakın. Bu alıştırma, C# kodunun yapısını öğrenmenize yardımcı olur.

Bu ilk örnek, if ve boole türlerinin gücünü gösterir. boole iki değerden birine sahip olabilecek bir değişkendir: true veya false. C# boole değişkenleri için bool ö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. Aşağıdaki kodu deneyin:

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'i boolean koşullarla birleştirmek, ihtiyacınız olan tüm gücü size 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. Aşağıdaki örnek, oluşturduğunuzla aynıdır. Deneyin.

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.

Daha karmaşık koşulları test edebilirsiniz:

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.

"veya" öğesini temsil etmek için || de kullanabilirsiniz:

if ((a + b + c > 10) || (a == b))

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.

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

Daha büyük programlar oluşturmaya yönelik bir diğer önemli kavram da döngüleridir. Döngüleri, birden çok kez yürütülmesini istediğiniz deyimleri yinelemek için kullanırsınız. Bu kodu etkileşimli pencerede deneyin:

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 . Sayacın değerine 1 ekler ve bu değeri sayaç değişkeninde depolar.

Önemli

Kodu yürütürken while döngüsü koşulunun false değerine geçtiğinden emin olun. Aksi takdirde, programınızın hiç bitmeyecek şekilde sonsuz döngü oluşturursunuz. Kodunuzu çalıştıran altyapı zaman aşımına uğradığından ve programınızdan bir çıkış görmediğinizden bunu göstermeyelim.

while döngüsü, whileizleyen kodu yürütmeden önce koşulu sınar. do ... while döngüsü önce kodu yürütür ve ardından koşulu denetler. Şuna benzer:

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

Bu do döngüsü ve önceki while döngüsü aynı şekilde çalışır.

Ş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. Bu kodu etkileşimli pencerede 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, koşul için: counter < 10, sayacın değeri 10'dan az olduğu sürece bu for döngüsünün 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.

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 öğrendiklerini kullanmak için kendiniz kod yazmaya geçelim.

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. Genellikle koleksiyonlarla kullanılır. Sonraki derste ele alınacaktır.

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

bir while, doveya for döngüsü, iç döngüdeki her öğeyle dış döngüdeki her öğenin birleşimi kullanılarak matris oluşturmak için başka bir döngünün içine iç içe yerleştirilebilir. Şimdi bunu, satırları ve sütunları temsil eden bir dizi alfasayısal çift oluşturmak için yapalım.

Bir for döngüsü satırları oluşturabilir:

for (int row = 1; row < 11; row++)
{
    Console.WriteLine($"The row is {row}");
}

Başka bir döngü sütunları oluşturabilir:

for (char column = 'a'; column < 'k'; column++)
{
    Console.WriteLine($"The column is {column}");
}

Bir döngüyü diğerinin içine yerleştirerek iç içe geçirebilirsiniz.

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

İç döngünün her tam çalıştırmasında dış döngünün bir kez arttığını görebilirsiniz. Satır ve sütunu iç içe yerleştirmeyi ters çevirip değişiklikleri kendiniz görün.

Dalları ve döngüleri birleştirme

C# dilinde if deyimini ve döngü yapılarını gördüğünüze göre, 1 ile 20 arasında bölünebilen 1 ile 20 arasında tüm tamsayıların toplamını bulmak için C# kodu yazıp yazamadığını görün. İş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" etkileşimli öğreticisini tamamladınız. Sonraki etkileşimli öğreticiyi başlatmak için liste koleksiyonu bağlantısını seçebilir veya .NET SDK'sını indirmek, makinenizde proje oluşturmak ve kodlamaya devam etmek için .NET sitesi ziyaret edebilirsiniz. "Sonraki adımlar" bölümü sizi bu öğreticilere geri getirir.

Bu kavramlar hakkında daha fazla bilgiyi şu makalelerde bulabilirsiniz: