Flutter Koşullu İfadeler: If, Else ve Switch Kullanımı

Geliştiricilerin bir uygulama geliştirirken karşılaştığı en önemli konulardan biri, kullanıcının verdiği girdilere göre uygulamanın nasıl davranacağıdır. Bu durumda devreye koşullu ifadeler girer. Flutter’da da koşullu ifadeler, if, else ve switch anahtar kelimeleri ile kullanılır.

If-Else Koşullu İfadeleri

If-else koşullu ifadeler, bir koşulun doğru veya yanlış olmasına bağlı olarak farklı işlemler yapar. İf bloğu, koşulun doğru olduğu durumda çalışırken, else bloğu ise koşulun yanlış olduğu durumda çalışır.

Örnek olarak, kullanıcının yaşını kontrol eden bir uygulama yazdığımızı düşünelim. Eğer kullanıcının yaşı 18’den büyükse “hoş geldiniz” mesajı görüntülenirken, küçükse “yaşınız yetersiz” mesajı görüntülenir. Bu senaryo için bir if-else koşullu ifadesi kullanabiliriz:

if(yas > 18) {
print("Hoş geldiniz!");
} else {
print("Yaşınız yetersiz!");
}

Bu örnekte, yas değişkeni 18’den büyükse “Hoş geldiniz!” mesajı görüntülenirken, 18’den küçükse “Yaşınız yetersiz!” mesajı görüntülenir.

Else-if Blokları

Else-if blokları, if-else koşullu ifadelerine ek olarak, birden fazla koşulun kontrol edilmesine izin verir. Örneğin, bir not ortalamasına göre öğrencinin harf notunu belirleyen bir uygulama yazdığımızı düşünelim. Bu senaryo için bir else-if bloğu kullanabiliriz:

if(ortalama >= 90) {
print("AA");
} else if(ortalama >= 80) {
print("BA");
} else if(ortalama >= 70) {
print("BB");
} else if(ortalama >= 60) {
print("CB");
} else if(ortalama >= 50) {
print("CC");
} else {
print("FF");
}

Bu örnekte, ortalama değişkeni sırayla 90, 80, 70, 60 ve 50’ye göre kontrol edilir ve uygun harf notu görüntülenir. Eğer ortalama değişkeni hiçbir koşulu sağlamazsa “FF” mesajı görüntülenir.

Ternary Operator Kullanımı

Flutter’da if-else koşullu ifadeleri dışında, ternary operator de kullanılabilir. Ternary operator, sadece iki koşulun olduğu durumlarda kullanılabilir ve daha kısa bir yazım sunar. Ternary operator, ? ve : sembolleri kullanılarak oluşturulur.

Genel olarak, ternary operator şu şekilde yazılır:

koşul ? değer1 : değer2

Burada, koşul doğru ise değer1, yanlış ise değer2 değerini döndürür. Örnek olarak, kullanıcının yaşına göre ekrana “Ergen” veya “Yetişkin” yazdıran bir uygulama yazalım:

int yas = 18;

String kategori = yas >= 18 ? "Yetişkin" : "Ergen";

print("Kullanıcı kategorisi: $kategori");

Bu örnekte, yas değişkeni 18 olarak tanımlanmıştır. Ternary operator kullanarak, yas değişkeninin 18’den büyük veya eşit olup olmadığı kontrol edilir. Eğer koşul doğruysa (yas 18’den büyük veya eşitse), kategori değişkeni “Yetişkin” olarak atanır. Eğer koşul yanlışsa (yas 18’den küçükse), kategori değişkeni “Ergen” olarak atanır. Daha sonra, kategori değişkeni ekranda görüntülenir.

Ternary operator, özellikle kısa koşulların kontrol edildiği durumlarda kullanışlıdır ve kodun daha okunaklı olmasını sağlar. Ancak, birden fazla koşulun kontrol edilmesi gerektiğinde if-else koşullu ifadelerinin kullanılması daha uygun olabilir.

Switch-Case Koşullu İfadeler

Flutter’da if-else koşullu ifadeleri ve ternary operatorlerinin yanı sıra, switch-case koşullu ifadeleri de kullanılabilir. switch-case ifadeleri, bir değişkenin belirli bir değere eşit olduğu durumlar için kullanılır ve if-else ifadelerine göre daha kolay okunabilir bir kod yazımı sağlar.

Genel olarak, switch-case ifadeleri şu şekilde yazılır:

switch(degiskenAdi) {
case deger1:
// kodlar
break;
case deger2:
// kodlar
break;
// diğer durumlar
default:
// kodlar
break;
}

Burada, degiskenAdi değişkeninin değeri, sırayla deger1, deger2, vb. değerlerle karşılaştırılır. Eşleşen bir case bulunduğunda, o case için tanımlanan kodlar çalıştırılır. break ifadesi, o case için işlemin bitirildiğini belirtir. default ifadesi ise, hiçbir case ile eşleşmediği durumda çalışacak kodları tanımlar.

Örnek olarak, bir ayın kaç gün olduğunu bulan bir uygulama yazalım:

int ay = 2;

switch (ay) {
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
print("$ay. ay 31 gün çeker.");
break;
case 4:
case 6:
case 9:
case 11:
print("$ay. ay 30 gün çeker.");
break;
case 2:
print("$ay. ay 28 veya 29 gün çeker.");
break;
default:
print("Geçersiz ay");
break;
}

Bu örnekte, ay değişkeni 2 olarak tanımlanmıştır. switch ifadesi ile, ay değişkeninin değeri sırayla 1, 3, 5, 7, 8, 10 ve 12 ile karşılaştırılır. Eğer ay değişkeni bu değerlerden birine eşitse, o ayın 31 gün çektiği ekrana yazdırılır. case 1, case 3, case 5 vb. ifadelerinin ardından break ifadesi kullanılmadan diğer case ifadelerine geçilmesi, bu değerlerin hepsinin aynı kodu paylaştığını belirtir. Eğer ay değişkeni 4, 6, 9 veya 11’e eşitse, o ayın 30 gün çektiği yazdırılır. Eğer ay değişkeni 2’ye eşitse, o ayın 28 veya 29 gün çektiği ekrana yazdırılır. Eğer ay değişkeni hiçbir case ile eşleşmezse, Switch-Case ifadeleri, belirli bir değişkenin farklı değerlerine göre farklı kod bloklarını çalıştırmak için kullanılır. Bu ifadeler, if-else ifadelerinden daha okunaklı ve pratiktir, özellikle belirli durumlar için çok sayıda koşul kontrolü yapılması gerektiğinde.

Örneğin, bir web uygulaması yazarken, kullanıcının seçtiği ülkeye göre farklı para birimlerini göstermek istediğinizi düşünün. Bu durumda, switch-case ifadesi kullanarak aşağıdaki gibi bir kod bloğu yazabilirsiniz:

String country = 'Türkiye';
String currency;

switch (country) {
case 'ABD':
currency = 'Dolar';
break;
case 'Almanya':
currency = 'Euro';
break;
case 'Türkiye':
currency = 'TL';
break;
default:
currency = 'Bilinmiyor';
break;
}

print('Seçilen ülke: $country');
print('Para birimi: $currency');

Bu kod bloğu, kullanıcının seçtiği ülkeye göre farklı para birimlerini belirler ve sonuçları konsola yazar. Eğer kullanıcı Türkiye’yi seçerse, currency değişkeni “TL” değerini alır.

Switch-case ifadesi, özellikle değişkenin çok sayıda farklı değere sahip olduğu durumlarda oldukça yararlıdır. Ayrıca, bir kod bloğunda çok sayıda if-else ifadesi kullanmak yerine, switch-case ifadesi kullanarak kodun daha temiz ve okunaklı olmasını sağlayabilirsiniz.

Null Aware İfadeler

Null aware if-else, null değerlerinin kontrol edilmesine izin verir. Eğer bir değişken null ise, null-aware if-else bloğunda belirtilen işlemler yapılır.

Örnek olarak, kullanıcının adını ve soyadını ekranda gösteren bir uygulama yazdığımızı düşünelim. Eğer soyadı null ise sadece adı görüntülenir, soyadı null değilse hem ad hem de soyad görüntülenir. Bu senaryo için bir null aware if-else bloğu kullanabiliriz:

String ad = "John";
String soyad;

soyad = null;

soyad ??= "";

String tamIsim = ad + " " + soyad;

print(tamIsim);

Bu örnekte, soyad değişkeni null olduğu için null-aware if-else bloğunda soyad değişkeni kontrol edilir ve değeri boş bir string olarak atanır. Daha sonra, tamIsim değişkeni ad ve soyad değişkenlerinin birleştirilmesiyle oluşturulur ve ekranda görüntülenir.

Sonuç

Flutter’da koşullu ifadeler, uygulamaların doğru bir şekilde çalışmasını sağlayan önemli bir konudur. If-else, ternary operator, switch-case ve null aware ifadeler gibi çeşitli yöntemler kullanarak, uygulamanızda farklı durumlar için farklı işlemler gerçekleştirebilirsiniz.

Sık Sorulan Sorular

  1. Koşullu ifadeleri Flutter’da hangi anahtar kelimelerle kullanabiliriz?
  • If, else, switch anahtar kelimeleri ile kullanabilirsiniz.
  1. Ternary operator ne işe yarar?
  • Bir koşulun doğru veya yanlış olduğuna göre iki farklı değer döndürür.
  1. Null aware ifadeler neden önemlidir?
  • Null aware ifadeler, null değerine sahip değişkenlerin hatalı bir şekilde kullanılmasını önler ve uygulamalarda hataların oluşmasını engeller.
  1. Flutter’da koşullu ifadelerin doğru kullanımı, hangi konularda fayda sağlar?
  • Koşullu ifadelerin doğru kullanımı, kodun okunaklığını arttırır ve uygulamanın doğru bir şekilde çalışmasını sağlar. Ayrıca, kodun yeniden kullanılabilirliğini arttırır ve hata ayıklama sürecini kolaylaştırır.
  1. If-else ifadeleri yerine neden ternary operator kullanılabilir?
  • Ternary operator, if-else ifadelerinin daha kısa bir şekilde yazılmasına olanak tanır ve kodun okunaklığını arttırır. Ayrıca, daha az satır kod yazılmasına ve kodun daha anlaşılır olmasına yardımcı olur.
  1. Switch-case ifadeleri hangi durumlarda kullanılabilir?
  • Switch-case ifadeleri, birden fazla koşula göre farklı işlemlerin yapılması gerektiği durumlarda kullanılabilir. Özellikle, koşullar arasında büyük farklılıklar yoksa ve birçok koşul bulunuyorsa, switch-case ifadeleri kodun okunaklılığını arttırır ve daha kolay bir şekilde yönetilebilir hale getirir.
  1. Else-if ifadeleri ile switch-case ifadeleri arasındaki farklar nelerdir?
  • Else-if ifadeleri, birçok koşulun birbirine benzer olduğu durumlarda tercih edilebilir. Ancak, switch-case ifadeleri, koşullar arasında daha büyük farklılıklar varsa daha okunaklı bir seçenek olabilir. Switch-case ifadeleri ayrıca, birçok koşul olduğunda if-else ifadelerinden daha hızlı çalışır.
  1. Koşullu ifadelerin yanı sıra, Flutter’da hangi diğer kontrol yapıları kullanılabilir?
  • Flutter’da, döngü (loop) yapıları ve kesme (break/continue) ifadeleri gibi diğer kontrol yapıları da kullanılabilir. Döngü yapıları, bir işlemin belirli koşullar altında tekrarlanmasını sağlar. Kesme ifadeleri ise, döngü veya switch-case gibi kontrol yapıları içinde belirli koşullar altında işlemi sonlandırmak veya geçmek için kullanılır.
  1. Dart dilindeki ? ve ?? operatörleri ne anlama gelir?
  • ? operatörü, null değerine sahip bir değişkenin kullanılması durumunda hata oluşmasını engellemek için kullanılır. Değişkenin sonuna ? eklenerek, değişkenin null olup olmadığı kontrol edilir ve null ise hata yerine null değeri döndürülür.
  • ?? operatörü ise, null değerine sahip bir değişkenin yerine kullanılacak bir değer belirlemek için kullanılır. Örneğin, x ?? y ifadesinde, x değişkeni null ise y değeri kullanılır.
  1. Koşullu ifadelerin performansı nasıl etkiler?
  • Koşullu ifadelerin yanlış kullanımı veya gereksiz kullanımı, uygulamanın performansını olumsuz etkileyebilir. Çok sayıda koşullu ifadenin kullanılması, uygulamanın hafızasını fazla kullanarak yavaşlamasına neden olabilir. Ayrıca, gereksiz koşullu ifadelerin kullanımı, kodun okunaklılığını da azaltabilir ve hata ayıklama sürecini zorlaştırabilir.
  1. Flutter’da koşullu ifadelerin kullanımında nelere dikkat etmek gerekir?
  • Koşullu ifadelerin doğru kullanımı, kodun okunaklılığını arttırır ve uygulamanın doğru bir şekilde çalışmasını sağlar. Ancak, gereksiz koşullu ifadelerin kullanımından kaçınılmalı ve sadece gerekli olduğu durumlarda kullanılmalıdır. Ayrıca, koşullu ifadelerin kullanımı, kodun yeniden kullanılabilirliğini arttırır ve hata ayıklama sürecini kolaylaştırır.
  1. Flutter’da koşullu ifadelerin yanı sıra hangi kontrol yapıları kullanılabilir?
  • Flutter’da, döngü yapıları (for, while, do-while), kesme ifadeleri (break, continue) ve switch-case yapıları da kullanılabilir. Bu yapılar, programın belirli koşullar altında farklı işlemler yapmasını sağlar ve kodun daha anlaşılır ve yönetilebilir hale gelmesini sağlar.
Bu içerik size ne kadar yardımcı oldu?
Sosyal Medyada Paylaş
Mertcan
Mertcan Erik, Akbaz.com'da yazarlık yapmaktadır. Mertcan Erik, yazılım mühendisliği ve yapay zeka konularında uzmandır. Mertcan Erik, teknoloji ve yazılım konularına olan merakı sayesinde, yazılım geliştirme ve mobil uygulama alanlarında da deneyim kazanmıştır. Mertcan Erik, Akbaz.com okuyucularına, teknolojideki yenilikleri takip etmeleri ve kendilerini geliştirmeleri için ilham verici içerikler sunmaktadır. Ayrıca, Mertcan Erik'in yazıları, konuları detaylı bir şekilde ele alırken, anlaşılması kolay bir dilde yazılmaktadır. Mertcan Erik, teknoloji ve yazılım alanındaki gelişmeleri takip etmekten ve okuyucuları için bilgilendirici içerikler üretmekten keyif almaktadır. Okuyucularımızın teknolojideki yenilikleri keşfetmelerine ve kendilerini geliştirmelerine yardımcı olmak için, Mertcan Erik gibi uzman yazarlarla çalışmaya devam edeceğiz.