Dart Dilinde Koşullu İfadeler
Diğer pek çok programlama dilinde de olduğu gibi Dart dilinde de akış kontrol ifadeleri vardır ve oldukça önemlidir. Bu yazımızda akış kontrol ifadelerinin ilk kısmı olan koşullu ifadeleri anlatacağız. Dart dilinde koşullu ifadeler “if – else if – else” ve “switch – case” olmak üzere iki farklı şekilde sağlanmaktadır.
Dart dilinde koşullu ifadeler ilk olarak if – else if -else ifadesini inceleyim:
Dart if, else if, else Yapısı
Programlamada if yapısı, programlama dili fark etmeksizin bilinen en ünlü ifadedir ve Dart’ta da diğer programlama dillerindeki gibi benzer bir mantıkta çalışır.
- Türkçede eğer anlamına gelen if ile doğru olduğunda bir kod bloğu çalışmakta ama yanlış ise çalışmamaktadır. Yani koşul, True veya False ile sonuçlanan bir Boole ifadesidir, eğer True ile sonuçlanırsa, o zaman if bloğu içindeki ifadeler yürütülür, False ile sonuçlanırsa, o zaman if bloğu atlanır.
void main()
{
var a = 1000;
var b = 200;
if(a > b){
print("$a değeri $b değerinden büyüktür.");
}
}
Koşullar, boole değerleri (true-false) olmalıdır. Örneğin C++’da if (0) {…} yazabilirsiniz, burada sıfır yanlış olarak değerlendirilir, ancak Dart’ta bu şekilde bir derlene olmaz, onun yerine if (false) {…} yazmanız gerekir.
- Eğer if koşulu yanlış olduğunda başka bir kod bloğu çalıştırmak istenirse else ifadesini kullanırız.
void main()
{
var a = 100;
var b = 200;
if(a > b){
print("$a değeri $b değerinden büyüktür.");
}
else {
print("$a değeri $b değerinden küçüktür");
}
}
Çıktı: 100 değeri 200 değerinden küçüktür
- Dart’ta if..else..if deyimi if..else deyiminde else-if ve if koşulu için tek else deyimlerini kullanarak alternatif test koşulları kümesi eklememize izin verir. Bu şekilde if..else..if ifadesi, yürütülecek birkaç kod bloğu arasından birini seçmek için kullanılır.
void main()
{
var a = 10;
var b = 10;
if(a > b){
print("a değeri b değerinden büyüktür");
}
else if(a == b){
print("a değeri b değerine eşittir");
}
else {
print("a değeri b değerinden küçüktür");
}
}
Çıktı: a değeri b değerine eşittir
Dart Kısa if Kulanımı
? işareti eğer anlamına gelir, else ise : olarak kullanılır:
void main()
{
var a =1;
var b = 10;
int minumum;
a < b ? minumum = a : minumum = b;
print ("küçük olan değer: $minumum");
}
Çıktı: küçük olan değer: 1
Bu örneği aşağıdaki gibi de çözebiliriz:
void main()
{
var a =1;
var b = 10;
int minumum = a < b ? a : b;
print ("küçük olan değer: $minumum");
}
Dart null Kontrolü
Dart’ta bir değer null olarak atanamaz. Bunu yapabilmek için değişken türünün yanına soru işareti ? koyulur. Null kontrolü yapabilmek içinse ?? işareti kullanılır:
void main()
{
String? dil = null;
String yazar = "Guido van Rossum";
String mesaj = dil ?? yazar;
print (mesaj);
}
Çıktı: Guido van Rossum
Dart switch, case, default Yapısı
Dart’ta switch case ifadesi, iç içe (Nested) if – else ifadesinin basitleştirilmiş şeklidir ve bu da uzun if..else if..else ifadeleri zincirinden kaçınmaya yardımcı olur. Bir switch case ifadesi, yürütülecek kod bloğunu tanımlamak için bir ifadeyi birden çok vakaya karşı değerlendirir. Eğer gönderilen ifade hiçbir seçenekte yok ise default seçeneğinde belirtilen kod bloğu devreye girer.
void main()
{
var haftaninGunleri = 5;
switch(haftaninGunleri){
case 1:{
print("Bugün pazartesi.");
}
break;
case 2:
print("Bugün salı.");
break;
case 3:{
print("Bugün çarşamba.");
}
break;
case 4:{
print("Bugün perşembe.");
}
break;
case 5:{
print("Bugün cuma.");
}
break;
case 6:{
print("Bugün cumartesi.");
}
break;
case 7:{
print("Bugün pazar.");
}
break;
default:{
print("Geçersiz bir ifade");
}
break;
}
}
Çıktı: Bugün cuma.
Yukarıdaki kodda kullanılan break ifadesi eğer koşul sağlanırsa ifadeyi sonlandırmak için kullanılmaktadır. Ayrıca break ve continue ifadeleri ayrı bir konu olarak anlatılacaktır.