C# Koşul İfadeleri İle Kontrol Akışları Yönetimi

C# Koşul İfadeleri İle Kontrol Akışları Yönetimi

Bu kurs C# programlama dilinde koşul ifadeleri ile kontrol akışlarının nasıl yönetileceğini öğretir Eğer C# öğrenmek istiyorsanız ve programlarınızı geliştirmek istiyorsanız, bu kurs tam size göre!

C# Koşul İfadeleri İle Kontrol Akışları Yönetimi

Merhaba okuyucular, bu makalede C# programlama dilinde bulunan koşul ifadeleri ve kontrol akışı yönetimi konusuna değineceğiz. C# dilinde koşul ifadeleri, belirli bir şartın gerçekleşmesi halinde ne yapılacağını belirlemek amacıyla kullanılır. Programımızın doğru çalışması için, koşul ifadeleri ile kontrol akışı yönetimi oldukça önemlidir.

C# dilinde en sık kullanılan koşul ifadeleri if-else ifadeleridir. Bu ifadeler sayesinde, program akışı bir koşulun doğru veya yanlış olduğu durumda, istenilen kod bloğunu çalıştırmak için kullanılır. Ayrıca, else if ifadeleri birden fazla olası şart durumlarını değerlendirmek için kullanılır. Nested if-else ifadeleri ise, bir if veya else if ifadesinin içinde bir başka if veya else if ifadesinin yer alması durumunda kullanılır. Ternary operatörü de koşulun doğru veya yanlış olması durumunda kısa kod bloklarının çalıştırılmasını sağlar.

C# dilinde bulunan diğer koşul ifadeleri ise switch-case ifadeleridir. Bu ifadelerde, belirli bir durumun gerçekleşmesi durumunda istenen kod bloklarının çalıştırılması sağlanır. Ayrıca, default durumu herhangi bir durumun gerçekleşmemesi durumunda çalışacak olan kod bloğunu belirler.

Kontrol akışı döngüleri C# dilinde program akışının yönetimi için oldukça önemlidir. While döngüsü belirli bir koşulun doğru olduğu sürece kod bloklarını tekrarlar. Do-while döngüsü ise, kod bloklarının koşul doğru olduğu müddetçe tekrarlanmasını sağlar, ancak koşul testi döngünün sonunda yapılır. For döngüsü de belirli bir sayıda tekrarlanmak istenen kod bloklarını belirli bir şart doğru olduğu müddetçe çalıştırır. Foreach döngüsü ise, bir koleksiyondaki her bir öğe için belirli bir işlem yapmak için kullanılır.


Koşul İfadeleri Nedir?

C# programlama dilinde koşul ifadeleri, programlama akışının bir koşula göre yönlendirilmesi için kullanılır. Bu ifadeler belirli bir şartın gerçekleşmesi durumunda kod bloklarının hangisinin çalıştırılacağını belirler. Eğer şart doğruysa belirtilen kod bloğu çalışır, aksi takdirde ise başka bir kod bloğu çalışır.

Koşul ifadeleri, programcılara birden fazla seçenek sunar ve bu seçenekler arasından en uygun olanının seçilmesini sağlar. C# programlama dilinde if-else, else if, nested if-else ve ternary operatörü gibi koşul ifadeleri mevcuttur.

  • if-else: if-else ifadeleri, belirli bir koşulun doğru veya yanlış olması durumunda istenen kod bloklarının çalıştırılmasını sağlar.
  • else if: else if ifadeleri, if ifadesi yanlış olduğunda birden fazla olası şart durumlarını değerlendirmek için kullanılır.
  • nested if-else: Nested if-else ifadeleri, bir if veya else if ifadesinin içinde bir başka if veya else if ifadesinin yer alması durumunda kullanılır.
  • ternary operatörü: Ternary operatörü, bir koşulun doğru veya yanlış olması durumunda kısa kod bloklarının çalıştırılmasını sağlar.

Koşullu ifadelerin yanı sıra C# programlama dilinde switch-case ifadeleri de bulunmaktadır. switch-case ifadeleri belirli bir durumun gerçekleşmesi durumunda istenen kod bloklarının çalıştırılmasını sağlar. Bunun yanı sıra kontrol akışı döngüleri de kullanılarak belirli bir şartın sağlanması durumunda kod bloklarının tekrarlanması sağlanır. while, do-while, for ve foreach döngüleri ile programcılar belirli bir şartın gerçekleşmesi durumunda kod bloklarının sürekli olarak tekrarlanmasını sağlayabilirler.


if-else İfadeleri

C# programlama dili içinde kullanılan koşul ifadeleri, kod bloklarının hangisinin çalıştırılacağını belirlemek için oldukça önemlidir. İf-else ifadeleri ise bu koşulları kontrol etmek için kullanılır. Eğer bir koşul doğru ise belirtilen kod bloğu çalıştırılır, yanlış ise başka bir kod bloğu çalıştırılır. Bu sayede program içerisinde farklı senaryolara göre farklı işlemler gerçekleştirilebilir.

Örneğin, bir kullanıcının şifresini kontrol eden bir kod yazıldığını düşünelim. Eğer kullanıcının girdiği şifre doğru ise "Giriş Başarılı" yazısı ekrana yazdırılırken, yanlış ise "Hatalı Şifre" yazısı ekrana yazdırılır. Bu işlem if-else ifadeleri ile kolayca gerçekleştirilebilir.

Bir diğer kullanım alanı ise birden fazla koşulun kontrol edilmesi gerektiği durumlarda kullanılan else if ifadeleridir. if ifadesi yanlış olduğunda birden fazla şart durumu için farklı kod blokları belirlenebilir. Bu sayede programın daha kontrollü ve esnek bir şekilde yönetilmesi sağlanır.


else if İfadeleri

else if ifadeleri, belirli bir koşulun doğru ya da yanlış olması durumunda birden fazla olası şart durumlarının değerlendirilmesi için kullanılan yapılardır. Bir önceki if ifadesinin yanlış olduğu durumlarda kullanılırlar ve birden fazla olası şart durumunu değerlendirmek için kullanılabilecek en iyi yolun else if ifadesi olduğu söylenebilir.

Bu yapıda, ilk koşulun doğru ya da yanlış olduğu durumlarda, önceden belirlenmiş bir kod bloğu çalıştırılır. Ancak ilk koşul yanlış olduğu zaman else if ifadesi devreye girer ve yeni bir koşul belirtilir. Bu şekilde, birden fazla koşulun aynı anda kontrol edilmesine imkan vererek, yapının esnekliği artırılmış olur.


Nested if-else İfadeleri

Nested if-else ifadeleri, C# programlama dilinde kullanılan if-else ifadelerinin bir üst seviyesinde yer alan bir kontrol akışı yönetimi yöntemidir. Bu yöntem, bir if veya else if ifadesinin içinde bir başka if veya else if ifadesinin yer alması durumunda kullanılır. Böylelikle, birbirinden bağımsız birçok koşulun karşılaştırılması mümkün olabilir.

Bu yöntem, kodun okunabilirliğini ve anlaşılırlığını arttırmak için kullanılabilir. Ancak, gereğinden fazla kullanıldığında kodun karmaşıklaşmasına ve okunamaz hale gelmesine neden olabilir. Yani, kullanacak olan kişinin dikkatli bir şekilde değerlendirmesi gerekmektedir.

Bir örnek vermek gerekirse, bir öğrencinin not ortalamasına göre aldığı derslerdeki harf notlarını belirlemek istediğimizi düşünelim. Bu durumda, öncelikle öğrencinin not ortalaması ile ilgili bir koşul ifadesi oluşturulur. Daha sonra bu ifade içinde yer alan koşul doğru ise, öğrencinin aldığı harf notu belirlenir. Ancak, öğrencinin not ortalaması sınır değerlerden biriyle aynı ise (örnek: 75), bu duruma özel bir ifade daha ekleyerek ifadeyi iç içe geçiririz.

Not Ortalaması Harf Notu
90-100 A+
85-89 A
80-84 A-
75-79 B+
70-74 B
65-69 B-
60-64 C+
55-59 C
50-54 C-
0-49 F

Yukarıdaki örnek, nested if-else ifadelerinin kullanılabileceği bir senaryoyu açıklamaktadır. Bu sayede, öğrencinin hangi harf notunu aldığı, not ortalamasına göre belirlenebilir.


Ternary Operatörü

Ternary Operatörü (Üçlü Operatör), C# programlama dilinin If-else ifadeleri yerine kullanılabilecek alternatif bir kontrol akışı yönetimi yoludur. Bu operatör, If-else ifadelerinde yer alan şartların doğru veya yanlış olması durumunda çalıştırılacak kod bloklarını kısa ve okunaklı bir şekilde belirlemek için kullanılır.

Ternary operatörünün kullanımı oldukça basittir. Koşulun doğru veya yanlış olması durumunda hangi kod bloğunun çalıştırılacağı belirtilerek, operatörün içindeki kodlar kısa ve öz bir şekilde yazılır. Ternary operatörü, üç elemandan oluşur: koşul, doğru bir sonuç durumunda çalıştırılacak kod bloğu ve yanlış bir sonuç durumunda çalıştırılacak kod bloğu.

Bir tam sayının pozitif veya negatif olduğunu belirten bir kod örneği ile ternary operatörünün kullanımına örnek verebiliriz.:

Kod Parçası: int sayi = 10;
string sonuc;
sonuc = (sayi > 0) ? "Pozitif" : "Negatif";
Açıklama: Herhangi bir sayı değeri atanır. Ardından, koşulda kontrol edilir. İfadenin sol tarafı, koşulun doğru olduğu durumda çalıştırılacak kod bloğudur. Sağ tarafı ise, koşulun yanlış olduğu durumda çalıştırılacak kod bloğudur. Bu örnekte, koşul olan "sayi > 0" doğru olduğu için "Pozitif" değeri sonuç değişkenine atanacaktır. Sonuç değişkeni, ternary operatörünün doğru veya yanlış olan sonuç durumlarından birine atandıktan sonra kod çalışmaya devam eder.

Ternary operatörü, kod bloklarını okunaklı ve kısa tutarak kod yazımını kolaylaştırır. Ancak, uzun ve karmaşık kod blokları için if-else ifadeleri daha uygun bir seçenek olabilir.


switch-case İfadeleri

C# programlama dilinde switch-case ifadeleri, belirli bir durumun gerçekleşmesi durumunda istenen kod bloklarının çalıştırılmasını sağlamak için kullanılır. Bu ifade yapısı, aynı amaç için kullanılan if-else ifadelerinden daha kolay ve okunaklı bir şekilde kod yazımını sağlar.

Switch-case ifadesi, bir anahtar kelimenin belirli bir değere karşılık gelecek kod bloklarının çalıştırılmasını sağlar. Örneğin, bir kullanıcının hesap türüne göre hesap parametrelerini ayarlamak istediğimizi varsayalım. Bu durumda switch-case ifadesi kullanarak, farklı hesap türlerine göre istenen parametreleri ayarlayabiliriz.

Hesap Türü Parametreler
Standart Hesap İşlem Limitleri: 5000 TL
Gold Hesap İşlem Limitleri: 10000 TL
Bonus Oranı: %1
Platinum Hesap İşlem Limitleri: Sınırsız
Bonus Oranı: %5
Özel Destek Hizmeti

Bu şekilde, switch-case ile belirli bir durumun gerçekleşmesi durumunda farklı parametreleri belirleyerek daha esnek bir kod yazımını sağlayabiliriz.

Default durumu da switch-case yapısında kullanılabilir. Eğer anahtar kelime hiçbir değere eşleşmezse, default durumu belirtilen kod bloğunu çalıştırır. Bu sayede, beklenmeyen durumlarda bile kodun sağlıklı bir şekilde yürütülmesi sağlanır.


Default Durumu

C# programlama dilinde switch-case ifadeleri, belirli bir durumun gerçekleşmesi durumunda istenen kod bloklarının çalıştırılmasını sağlar. Ancak, switch-case ifadesinde herhangi bir durumun gerçekleşmemesi durumunda çalışacak olan kod bloğunu belirlemek gerekebilir. Bu durumda devreye "default durumu" girer.

Default durumu, switch-case ifadesinde herhangi bir durumun gerçekleşmemesi durumunda belirli bir kod bloğunun çalışmasını sağlar. Default durumu, switch-case ifadesinin en sonunda yer almalıdır.

Örneğin, aşağıdaki kod parçasında switch-case ifadesine bir string değeri verilmiştir. Eğer verilen değer "mavi" veya "yeşil" ise, ilgili kod blokları çalıştırılacak. Ancak eğer verilen değer belirtilen değerlerden farklıysa, default durumundaki kod bloğu çalıştırılacaktır.

Kod Parçası Değer
switch (renk){  case "mavi":    Console.WriteLine("Renk mavi!");    break;  case "yeşil":    Console.WriteLine("Renk yeşil!");    break;  default:    Console.WriteLine("Belirsiz renk!");    break;}
mavi
switch (renk){  case "mavi":    Console.WriteLine("Renk mavi!");    break;  case "yeşil":    Console.WriteLine("Renk yeşil!");    break;  default:    Console.WriteLine("Belirsiz renk!");    break;}
sarı

Bu şekilde, belirtilen koşullar dışındaki durumlar için önceden belirlenmiş bir kod bloğu çalıştırılarak, programın daha kontrollü bir şekilde yönetilmesi sağlanır.


Kontrol Akışı Döngüleri

Kontrol akışı döngüleri, C# programlama dilinde belirli bir şartın sağlanması durumunda kod bloklarının sürekli olarak tekrarlanmasını sağlar. Bu döngüler kullanılarak programlar çok sayıda tekrarlanan işlemi hızlı ve etkili bir şekilde gerçekleştirebilir.

C# programlama dilinde yaygın olarak kullanılan dört farklı kontrol akışı döngüsü bulunmaktadır: while, do-while, for ve foreach. while döngüsü belirli bir koşul doğru olduğu müddetçe kod bloklarını tekrarlar. Do-while döngüsü ise koşul doğru olduğu müddetçe kod bloklarını tekrarlar, ancak koşul testi döngünün sonunda yapılır.

For döngüsü belirli bir sayıda tekrarlanmak istenen kod bloklarını belirli bir şart doğru olduğu müddetçe çalıştırırken, foreach döngüsü bir koleksiyondaki her bir öğe için belirli bir işlem yapmak için kullanılır. Döngüler içerisinde kullanılacak koşullar ve sayma işlemleri kullanıcının ihtiyacına göre özelleştirilebilir.

Döngü Türü Koşul Testi Sayma İşlemi
while Önce İlk
do-while Sonra İlk
for Önce İlk
foreach - -

Yukarıdaki tablo, döngü türleri için koşul testi ve sayma işlemlerinin nasıl yapıldığını açıklayan bir örnek olarak kullanılabilir. Hangi döngü türünün kullanılacağı, işlemin yapıldığı probleme, veri yapısına ve tasarım tercihine Dayalı olarak seçilebilir.

Kontrol akışı döngüleri, C# programlama dilinde sıklıkla kullanılan yapılar arasındadır. Bu döngülerle birçok işlem hızlı ve etkili bir şekilde gerçekleştirilebilir. Koşul ifadeleri ile birlikte kullanıldığında program akışı tamamen kontrol altına alınabilir.


while Döngüsü

C# programlama dilinde while döngüsü, belirli bir koşul doğru olduğu sürece kod bloklarını tekrarlayarak çalıştırmak için kullanılır. Bu döngü, koşul doğru olduğu sürece tekrarlanırken, koşul yanlış olduğu zaman döngü sonlanır ve kod blokları çalıştırılmaz.

While döngüsü, programlama dilinde en sık kullanılan döngü türlerinden biridir ve pek çok farklı senaryoda kullanılabilir. Örneğin, bir dosya okuma işleminde, belirli bir şart doğru olduğu sürece dosyadan veri okuyarak işlem yapabilirsiniz.

while(koşul) {
// Kodlar
}

Yukarıdaki örnekte, while döngüsünde belirli bir koşul ifadesi yer almaktadır. Bu koşul, her turda doğrulanacak ve eğer doğruysa, döngü bloğu içinde yer alan kodlar tekrarlanacaktır. Döngü bloğu içinde yer alan kodlar, koşul doğru olduğu sürece tekrarlanacak ve koşul yanlış olduğunda döngü sonlanacaktır.

While döngüsü, aynı zamanda bir do-while döngüsüyle birlikte kullanıldığında, belirli bir işlemi tamamlamak için kullanılabilir. Örneğin, kullanıcının doğru giriş yapana kadar bir kullanıcı adı ve şifre kombinasyonu girmesi gereken bir senaryoda, while döngüsü kullanılarak tekrarlama işlemi gerçekleştirilebilir.


do-while Döngüsü

Do-while döngüsü, while döngüsü ile benzerlik gösterse de farklı bir yapıda çalışır. Bu döngü, kod bloklarının önce çalışmasını sağlayarak sonrasında koşul testini yapar. Yani döngü bloğu önceden belirlenmiş bir kez çalıştırılacak, ardından koşul testi yapılacak ve koşul doğru olduğu müddetçe kod blokları tekrarlanacaktır.

Do-while döngüsü şu şekilde şekillenir:

Döngü Tanımlayıcısı Açıklama
do Döngü bloğu başlar
Kod Blokları Belirlenmiş işlemler gerçekleştirilir
while(koşul) Koşul testi yapılır ve koşul doğru olduğu sürece döngü bloğu tekrarlanır

Do-while döngüsü önemli bir kullanım alanı, kullanıcılardan sürekli olarak girdi almak gerektiği durumlardır. Örneğin, kullanıcı bir sayı girene dek bir işlemi tekrarlayabilirsiniz. Bu döngü, en az bir kez çalıştırılmasını garanti etmek için de yararlıdır.

Bu döngünün bir diğer önemli özelliği de, döngüden çıkışın koşul testinin yanlış olması durumunda gerçekleşmesidir. Yani, döngü bloğu önceden belirlenmiş bir kez çalıştırılacak, ardından koşul testi yapılacak ve koşul yanlış olduğu aralıkta döngüden çıkılacaktır.

Özetle, do-while döngüsü, while döngüsü gibi bir koşul testine sahip olsa da yapısı itibariyle farklıdır. Kod blokları önceden belirlenmiş bir kez çalıştırılacak, ardından koşul testi yapılacak ve koşul doğru olduğu sürece döngü tekrarlanacaktır. Döngüden çıkış koşulun yanlış olması durumunda gerçekleşir.


for Döngüsü

C# programlama dilinde, belirli bir sayıda tekrarlanmak istenen kod bloklarını belirli bir şart doğru olduğu müddetçe çalıştırmak için for döngüsü kullanılır. For döngüsü, genellikle, belirli bir aralıkta çalıştırılacak olan kod bloklarını tekrarlamak için kullanılır. Döngüde, belirli bir sayıda tekrar gerektiren işlemler yapılabilir.

Aşağıda, for döngüsü kullanarak 1'den 10'a kadar olan sayıların toplamını bulma örneği verilmiştir:

Kod Açıklama
int toplam = 0;for (int i = 1; i <= 10; i++){    toplam += i;}Console.WriteLine("Toplam: " + toplam);
Bir değişken olan toplam başlangıçta sıfıra eşitlenir. Döngüde, i değişkeni 1'den 10'a kadar artar ve her adımda toplam değişkenine i eklenir. Son olarak, toplam değeri ekrana yazdırılır.

Bu örnekte, for döngüsündeki başlangıç değeri 1, bitiş değeri 10 ve artış miktarı 1 olarak belirlendi. Ancak, başlangıç değeri, bitiş değeri veya artış miktarı değiştirilebilir. Ayrıca, döngü bloğunda herhangi bir işlem yapabilirsiniz.


foreach Döngüsü

C# programlama dilinde kullanılan bir diğer kontrol akışı döngüsü ise foreach döngüsüdür. Bu döngü, bir koleksiyondaki her bir öğe için belirli bir işlem yapmak için kullanılır.

Foreach döngüsü, bir dizinin, liste ya da dictionary gibi bir koleksiyondaki elemanlarına sırayla erişerek bu elemanlara belirli işlemler yapmak için kullanılır. Koleksiyondaki öğelere tek tek erişim sağlar ve önceden belirtilen işlemleri yapar.

Foreach döngüsü, genellikle for döngüsünden daha az hata yapma olasılığına sahiptir. Ayrıca, koleksiyonun belirli bir elemanına erişmek için dizin kullanmanın aksine, foreach döngüsü koleksiyonun kendisindeki her bir elemana erişir ve daha az karmaşık bir yapıya sahiptir.

Foreach döngüsü, şu şekilde yazılabilir:

Syntax Açıklama
foreach (veri_tipi öge_değişkeni in koleksiyon_adı) Koleksiyonun her bir elemanı öge_değişkeni adlı değişkene atanır ve her bir eleman için belirtilen işlemler yapılır.

Foreach döngüsü örnek olarak şu şekilde yazılabilir:

int[] dizi = new int[] { 1, 2, 3, 4, 5 };foreach (int sayi in dizi){    Console.WriteLine(sayi);}

Bu örnekte, bir tam sayılar dizisi oluşturuldu ve her bir öğe, döngü içindeki 'sayi' adlı değişkene atandı. Her bir eleman için, 'Console.WriteLine' fonksiyonu kullanılarak o elemanın değeri yazdırıldı.

Özetle, foreach döngüsü belirli bir koleksiyondaki her bir öğe için belirli bir işlem yapmak için kullanılır ve for döngüsüne göre daha az hata yapma olasılığına sahip bir yapıya sahiptir.